Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'hypervisor' into surf++
[simgrid.git] / src / include / mc / datatypes.h
1 /* Copyright (c) 2008-2013. 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_DATATYPE_H
8 #define MC_DATATYPE_H
9 #include "xbt/misc.h"
10 #include "xbt/swag.h"
11 #include "xbt/fifo.h"
12
13 SG_BEGIN_DECL()
14
15 /******************************* Transitions **********************************/
16
17 typedef struct s_mc_transition *mc_transition_t;
18
19
20 /*********** Structures for snapshot comparison **************************/
21
22 typedef struct s_mc_heap_ignore_region{
23   int block;
24   int fragment;
25   void *address;
26   size_t size;
27 }s_mc_heap_ignore_region_t, *mc_heap_ignore_region_t;
28
29 typedef struct s_stack_region{
30   void *address;
31   char *process_name;
32   void *context;
33   size_t size;
34   int block;
35 }s_stack_region_t, *stack_region_t;
36
37 void heap_ignore_region_free(mc_heap_ignore_region_t r);
38 void heap_ignore_region_free_voidp(void *r);
39
40 /************ DWARF structures *************/
41
42 typedef enum{
43   e_dw_base_type = 0,
44   e_dw_enumeration_type,
45   e_dw_enumerator,
46   e_dw_typedef,
47   e_dw_const_type,
48   e_dw_array_type,
49   e_dw_pointer_type,
50   e_dw_structure_type,
51   e_dw_union_type,
52   e_dw_subroutine_type,
53   e_dw_volatile_type
54 }e_dw_type_type;
55
56 typedef struct s_dw_type{
57   e_dw_type_type type;
58   void *id;
59   char *name;
60   int size;
61   char *dw_type_id;
62   xbt_dynar_t members; /* if DW_TAG_structure_type */
63   int is_pointer_type;
64   int offset;
65 }s_dw_type_t, *dw_type_t;
66
67 char* get_type_description(xbt_dict_t types, char *type_name);
68
69 SG_END_DECL()
70 #endif                          /* _MC_MC_H */