Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a247eba8022585272f1106b4c85c039154c03922
[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 SIMGRID_MC_FORWARD_H
8 #define SIMGRID_MC_FORWARD_H
9
10 #include <xbt/misc.h>
11 #include <mc/datatypes.h>
12
13 #ifdef __cplusplus
14
15 #define MC_OVERRIDE
16
17 namespace simgrid {
18 namespace mc {
19
20 class PageStore;
21 class ModelChecker;
22 class AddressSpace;
23 class Process;
24 class Snapshot;
25
26 }
27 }
28
29 typedef ::simgrid::mc::ModelChecker s_mc_model_checker_t;
30 typedef ::simgrid::mc::PageStore s_mc_pages_store_t;
31 typedef ::simgrid::mc::AddressSpace s_mc_address_space_t;
32 typedef ::simgrid::mc::Process s_mc_process_t;
33 typedef ::simgrid::mc::Snapshot s_mc_snapshot_t;
34
35 #else
36
37 typedef struct _s_mc_model_checker s_mc_model_checker_t;
38 typedef struct _s_mc_pages_store s_mc_pages_store_t;
39 typedef struct _s_mc_address_space_t s_mc_address_space_t;
40 typedef struct _s_mc_process_t s_mc_process_t;
41 typedef struct _s_mc_snapshot_t s_mc_snapshot_t;
42
43 #endif
44
45 typedef struct s_mc_object_info s_mc_object_info_t, *mc_object_info_t;
46 typedef struct s_dw_type s_dw_type_t, *dw_type_t;
47 typedef struct s_memory_map s_memory_map_t, *memory_map_t;
48 typedef struct s_dw_variable s_dw_variable_t, *dw_variable_t;
49 typedef struct s_dw_frame s_dw_frame_t, *dw_frame_t;
50
51
52 typedef s_mc_pages_store_t *mc_pages_store_t;
53 typedef s_mc_model_checker_t *mc_model_checker_t;
54 typedef s_mc_address_space_t *mc_address_space_t;
55 typedef s_mc_process_t *mc_process_t;
56 typedef s_mc_snapshot_t *mc_snapshot_t;
57
58 SG_BEGIN_DECL()
59 extern mc_model_checker_t mc_model_checker;
60 SG_END_DECL()
61
62 #endif