Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : free memory
[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_mc_stack_ignore_variable{
29   char *var_name;
30   char *frame;
31 }s_mc_stack_ignore_variable_t, *mc_stack_ignore_variable_t;
32
33 typedef struct s_mc_data_bss_ignore_variable{
34   void *address;
35   size_t size;
36 }s_mc_data_bss_ignore_variable_t, *mc_data_bss_ignore_variable_t;
37
38 typedef struct s_stack_region{
39   void *address;
40   char *process_name;
41   void *context;
42   size_t size;
43   int block;
44 }s_stack_region_t, *stack_region_t;
45
46 typedef struct s_heap_equality{
47   void *address1;
48   void *address2;
49 }s_heap_equality_t, *heap_equality_t;
50
51 void heap_equality_free_voidp(void *e);
52 void stack_region_free_voidp(void *s);
53
54 void heap_ignore_region_free(mc_heap_ignore_region_t r);
55 void heap_ignore_region_free_voidp(void *r);
56 void data_bss_ignore_variable_free(mc_data_bss_ignore_variable_t v);
57 void data_bss_ignore_variable_free_voidp(void *v);
58 void stack_ignore_variable_free(mc_stack_ignore_variable_t v);
59 void stack_ignore_variable_free_voidp(void *v);
60
61 SG_END_DECL()
62 #endif                          /* _MC_MC_H */