]> gitweb.factorcode.org Git - factor.git/blob - vm/code_heap.h
Merge branch 'master' into experimental
[factor.git] / vm / code_heap.h
1 /* compiled code */
2 F_HEAP code_heap;
3
4 INLINE F_BLOCK *compiled_to_block(F_CODE_BLOCK *compiled)
5 {
6         return (F_BLOCK *)compiled - 1;
7 }
8
9 INLINE F_CODE_BLOCK *block_to_compiled(F_BLOCK *block)
10 {
11         return (F_CODE_BLOCK *)(block + 1);
12 }
13
14 void init_code_heap(CELL size);
15
16 bool in_code_heap_p(CELL ptr);
17
18 void default_word_code(F_WORD *word, bool relocate);
19
20 void set_word_code(F_WORD *word, F_CODE_BLOCK *compiled);
21
22 typedef void (*CODE_HEAP_ITERATOR)(F_CODE_BLOCK *compiled);
23
24 void iterate_code_heap(CODE_HEAP_ITERATOR iter);
25
26 void copy_code_heap_roots(void);
27
28 void update_code_heap_roots(void);
29
30 void primitive_modify_code_heap(void);
31
32 void primitive_code_room(void);
33
34 void compact_code_heap(void);