diff options
Diffstat (limited to 'libguile/whippet/api/gc-allocation-kind.h')
-rw-r--r-- | libguile/whippet/api/gc-allocation-kind.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libguile/whippet/api/gc-allocation-kind.h b/libguile/whippet/api/gc-allocation-kind.h new file mode 100644 index 000000000..72de3b6be --- /dev/null +++ b/libguile/whippet/api/gc-allocation-kind.h @@ -0,0 +1,19 @@ +#ifndef GC_ALLOCATION_KIND_H +#define GC_ALLOCATION_KIND_H + +enum gc_allocation_kind { + // An object whose type can be inspected at run-time based on its contents, + // and whose fields be traced via the gc_trace_object procedure. + GC_ALLOCATION_TAGGED, + // Like GC_ALLOCATION_TAGGED, but not containing any fields that reference + // GC-managed objects. The GC may choose to handle these specially. + GC_ALLOCATION_TAGGED_POINTERLESS, + // A raw allocation whose type cannot be inspected at trace-time, and whose + // fields should be traced conservatively. + GC_ALLOCATION_UNTAGGED_CONSERVATIVE, + // A raw allocation whose type cannot be inspected at trace-time, but + // containing no fields that reference GC-managed objects. + GC_ALLOCATION_UNTAGGED_POINTERLESS +}; + +#endif // GC_ALLOCATION_KIND_H |