summaryrefslogtreecommitdiff
path: root/src/gc.h
blob: dff3b7973a8e5b4ca2bd3dc9d435f9a5ac18becb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef IMB3_GC_H
#define IMB3_GC_H

#include "value.h"
#include <stddef.h>

void gc_init(void);
void gc_collect(void);

struct object;
struct value gc_read_value_slot(struct object *, size_t);
uintptr_t gc_read_untraced_slot(struct object *, size_t);
uint8_t gc_read_untraced_byte(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