Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
2abc34a28efd52cf8e89b6db8c409bc47ff392a2
[simgrid.git] / src / mc / mc_forward.h
1 /* Copyright (c) 2007-2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef MC_FORWARD_H
8 #define MC_FORWARD_H
9
10 #include <xbt/misc.h>
11 #include <mc/datatypes.h>
12
13 #ifdef __cplusplus
14
15 namespace simgrid {
16 namespace mc {
17
18 class PageStore;
19 class ModelChecker;
20 class AddressSpace;
21 class Process;
22 class Snapshot;
23
24 }
25 }
26
27 typedef ::simgrid::mc::ModelChecker s_mc_model_checker_t;
28 typedef ::simgrid::mc::PageStore s_mc_pages_store_t;
29 typedef ::simgrid::mc::AddressSpace s_mc_address_space_t;
30 typedef ::simgrid::mc::Process s_mc_process_t;
31 typedef ::simgrid::mc::Snapshot s_mc_snapshot_t;
32
33 #else
34
35 typedef struct _s_mc_model_checker s_mc_model_checker_t;
36 typedef struct _s_mc_pages_store s_mc_pages_store_t;
37 typedef struct _s_mc_address_space_t s_mc_address_space_t;
38 typedef struct _s_mc_process_t s_mc_process_t;
39 typedef struct _s_mc_snapshot_t s_mc_snapshot_t;
40
41 #endif
42
43 typedef struct s_mc_object_info s_mc_object_info_t, *mc_object_info_t;
44 typedef struct s_dw_type s_dw_type_t, *dw_type_t;
45 typedef struct s_memory_map s_memory_map_t, *memory_map_t;
46 typedef struct s_dw_variable s_dw_variable_t, *dw_variable_t;
47 typedef struct s_dw_frame s_dw_frame_t, *dw_frame_t;
48
49
50 typedef s_mc_pages_store_t *mc_pages_store_t;
51 typedef s_mc_model_checker_t *mc_model_checker_t;
52 typedef s_mc_address_space_t *mc_address_space_t;
53 typedef s_mc_process_t *mc_process_t;
54 typedef s_mc_snapshot_t *mc_snapshot_t;
55
56 SG_BEGIN_DECL()
57 extern mc_model_checker_t mc_model_checker;
58 SG_END_DECL()
59
60 #endif