bug fixes
[IRC.git] / Robust / src / Runtime / garbage.h
1 #ifndef GARBAGE_H
2 #define GARBAGE_H
3 #ifdef STM
4 #include "stmlookup.h"
5 #endif
6 struct garbagelist {  
7   int size;
8   struct garbagelist *next;  
9   void * array[]; 
10 };
11
12 struct listitem {
13   struct listitem * prev;
14   struct listitem * next;
15   struct garbagelist * stackptr;  
16 #ifdef THREADS
17   struct ___Object___ * locklist;
18 #endif
19 #ifdef STM
20   unsigned int tc_size;
21   cliststruct_t **tc_structs;
22   chashlistnode_t **tc_table;
23   chashlistnode_t **tc_list;
24   struct objlist * objlist;
25 #ifdef STMSTATS
26   struct objlist * lockedlist;
27 #endif
28 #endif
29 #if defined(THREADS)||defined(STM)||defined(MLP)
30   char **base;
31 #endif
32 #ifdef MLP
33   void *seseCommon;
34 #endif
35 };
36
37 #ifdef TASK
38 void fixtags();
39 #endif
40
41 #if defined(THREADS)||defined(DSTM)||defined(STM)||defined(MLP)
42 extern int needtocollect;
43 void checkcollect(void * ptr);
44 void stopforgc(struct garbagelist * ptr);
45 void restartaftergc();
46 #endif
47 void * tomalloc(int size);
48 void collect(struct garbagelist *stackptr);
49 int gc_createcopy(void * orig, void **);
50 void * mygcmalloc(struct garbagelist * ptr, int size);
51 #endif
52 #ifdef STM
53 void fixtable(chashlistnode_t **, chashlistnode_t **, cliststruct_t **, unsigned int);
54 #endif
55
56 int within(void *ptr);