blob: d7ce8b07b10b41c205077e2eb8ab9e484d8d2950 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#ifndef IMB3_GC_H
#define IMB3_GC_H
#include "value.h"
void gc_init(void);
void gc_collect(void);
struct object;
struct object *gc_alloc(size_t value_slot_count, size_t untraced_slot_count);
struct object *gc_alloc_compiled_function(size_t value_slot_count,
size_t untraced_slot_count);
struct object *gc_alloc_hashtable_eq(size_t value_slot_count,
size_t untraced_slot_count);
struct value gc_read_value_slot(const struct object *, size_t);
uintptr_t gc_read_untraced_slot(const struct object *, size_t);
uint8_t gc_read_untraced_byte(const struct object *, size_t);
void gc_write_value_slot(struct object *, size_t, struct value);
void gc_write_untraced_slot(struct object *, size_t, uintptr_t);
void gc_write_untraced_byte(struct object *, size_t, uint8_t);
#endif // IMB3_GC_H
|