Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / src / include / mc / datatypes.h
1 /* Copyright (c) 2008-2012. Da SimGrid Team. All rights reserved.           */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef MC_DATATYPE_H
7 #define MC_DATATYPE_H
8 #include "xbt/misc.h"
9 #include "xbt/swag.h"
10 #include "xbt/fifo.h"
11
12 SG_BEGIN_DECL()
13
14 /******************************* Transitions **********************************/
15
16 typedef struct s_mc_transition *mc_transition_t;
17
18
19 /*********** Structures for snapshot comparison **************************/
20
21 typedef struct s_mc_heap_ignore_region{
22   int block;
23   int fragment;
24   void *address;
25   size_t size;
26 }s_mc_heap_ignore_region_t, *mc_heap_ignore_region_t;
27
28 typedef struct s_stack_region{
29   void *address;
30   char *process_name;
31   void *context;
32   size_t size;
33   int block;
34 }s_stack_region_t, *stack_region_t;
35
36 void stack_region_free_voidp(void *s);
37
38 void heap_ignore_region_free(mc_heap_ignore_region_t r);
39 void heap_ignore_region_free_voidp(void *r);
40
41 /************ DWARF structures *************/
42
43 typedef enum{
44   e_dw_base_type = 0,
45   e_dw_enumeration_type,
46   e_dw_enumerator,
47   e_dw_typedef,
48   e_dw_const_type,
49   e_dw_array_type,
50   e_dw_pointer_type,
51   e_dw_structure_type,
52   e_dw_union_type,
53   e_dw_subroutine_type,
54   e_dw_volatile_type
55 }e_dw_type_type;
56
57 typedef struct s_dw_type{
58   e_dw_type_type type;
59   void *id;
60   char *name;
61   int size;
62   char *dw_type_id;
63   xbt_dynar_t members; /* if DW_TAG_structure_type */
64   int is_pointer_type;
65   int offset;
66 }s_dw_type_t, *dw_type_t;
67
68 char* get_type_description(xbt_dict_t types, char *type_name);
69
70 SG_END_DECL()
71 #endif                          /* _MC_MC_H */