diff options
Diffstat (limited to 'includes/rts/storage/GC.h')
-rw-r--r-- | includes/rts/storage/GC.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/includes/rts/storage/GC.h b/includes/rts/storage/GC.h index 80f11d3ee1..fb5e21e832 100644 --- a/includes/rts/storage/GC.h +++ b/includes/rts/storage/GC.h @@ -83,6 +83,8 @@ typedef struct generation_ { StgTSO * threads; // threads in this gen // linked via global_link + StgWeak * weak_ptr_list; // weak pointers in this gen + struct generation_ *to; // destination gen for live objects // stats information @@ -116,6 +118,7 @@ typedef struct generation_ { bdescr * bitmap; // bitmap for compacting collection StgTSO * old_threads; + StgWeak * old_weak_ptr_list; } generation; extern generation * generations; @@ -154,8 +157,11 @@ StgPtr allocate ( Capability *cap, W_ n ); StgPtr allocatePinned ( Capability *cap, W_ n ); /* memory allocator for executable memory */ -void * allocateExec(W_ len, void **exec_addr); -void freeExec (void *p); +typedef void* AdjustorWritable; +typedef void* AdjustorExecutable; + +AdjustorWritable allocateExec(W_ len, AdjustorExecutable *exec_addr); +void freeExec (AdjustorExecutable p); // Used by GC checks in external .cmm code: extern W_ large_alloc_lim; |