swissChili | 6d6525e | 2021-06-15 21:20:53 -0700 | [diff] [blame] | 1 | #pragma once |
| 2 | |
swissChili | 9e57da4 | 2021-06-15 22:22:46 -0700 | [diff] [blame] | 3 | #include "lisp.h" |
| 4 | |
| 5 | // I hate this |
| 6 | extern value_t *gc_base; |
| 7 | |
| 8 | void gc_set_base_here(); |
| 9 | |
swissChili | e9fec8b | 2021-06-22 13:59:33 -0700 | [diff] [blame] | 10 | value_t alloc_to_value(struct alloc *a); |
swissChili | 6d6525e | 2021-06-15 21:20:53 -0700 | [diff] [blame] | 11 | void _do_gc(unsigned int esp, unsigned int ebp); |
swissChili | e9fec8b | 2021-06-22 13:59:33 -0700 | [diff] [blame] | 12 | void _mark(value_t value, unsigned int *marked); |
swissChili | 6d6525e | 2021-06-15 21:20:53 -0700 | [diff] [blame] | 13 | void _sweep(); |
swissChili | b8fd471 | 2021-06-23 15:32:04 -0700 | [diff] [blame] | 14 | void free_all(); |