diff options
Diffstat (limited to 'system/include/gc.h')
-rw-r--r-- | system/include/gc.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/system/include/gc.h b/system/include/gc.h index e0419dcb..a21fd410 100644 --- a/system/include/gc.h +++ b/system/include/gc.h @@ -1,6 +1,8 @@ /* * Boehm-compatible GC API */ +#ifndef _GC_H_INCLUDED +#define _GC_H_INCLUDED #include <stdlib.h> @@ -29,6 +31,12 @@ void *GC_MALLOC(int bytes); /* Allocate memory for an object that the user promises will not contain pointers. */ void *GC_MALLOC_ATOMIC(int bytes); +/* Allocate memory that might container pointers but that can't be collected. */ +void *GC_MALLOC_UNCOLLECTABLE(int bytes); + +/* Reallocate a GC managed memory block to a new size. */ +void *GC_REALLOC(void *ptr, int newBytes); + /* Explicitly deallocate an object. Dangerous as it forces a free and does not check if the object is reffed. */ void GC_FREE(void *ptr); @@ -36,6 +44,9 @@ void GC_FREE(void *ptr); void GC_REGISTER_FINALIZER_NO_ORDER(void *ptr, void (*func)(void *, void *), void *arg, void *(*old_func)(void *, void *), void *old_arg); +/* Gets the bytes allocated and managed by the GC */ +int GC_get_heap_size(); + /* Non-Boehm additions */ /* Call this once per frame or such, it will collect if necessary */ @@ -56,3 +67,4 @@ void GC_enable_incremental(); } #endif +#endif |