5 #include "structdefs.h"
7 //#define PMC_MINALLOC 131072
8 #define PMC_MINALLOC 2048
9 #define NUMPMCUNITS (4*NUMCORES4GC)
10 #define UNITSIZE (BAMBOO_SHARED_MEM_SIZE/NUMPMCUNITS)
13 tmc_spin_mutex_t lock;
14 unsigned int numbytes;
15 unsigned int regionnum;
25 unsigned int highunit;
26 tmc_spin_mutex_t lock;
27 struct ___Object___ * lastobj;
28 struct pmc_queue markqueue;
32 struct pmc_unit units[NUMPMCUNITS];
33 struct pmc_region regions[NUMCORES4GC];
34 tmc_spin_mutex_t lock;
35 volatile unsigned int numthreads;
36 tmc_spin_barrier_t barrier;
39 extern struct pmc_heap * pmc_heapptr;
40 extern struct pmc_queue * pmc_localqueue;
42 void gettype_size(void * ptr, unsigned int * ttype, unsigned int * tsize);
43 void padspace(void *ptr, unsigned int length);
44 void * pmc_unitend(unsigned int index);
45 void incrementthreads();
46 void decrementthreads();
49 void gc(struct garbagelist *gl);