Port to x86-64 versions of Windows
[sbcl.git] / src / runtime / gc.h
1 /*
2  * garbage collection
3  */
4
5 /*
6  * This software is part of the SBCL system. See the README file for
7  * more information.
8  *
9  * This software is derived from the CMU CL system, which was
10  * written at Carnegie Mellon University and released into the
11  * public domain. The software is in the public domain and is
12  * provided with absolutely no warranty. See the COPYING and CREDITS
13  * files for more information.
14  */
15
16 #ifndef _GC_H_
17 #define _GC_H_
18
19 #include "sbcl.h"
20 #include <stdint.h>
21
22 #define PAGE_BYTES BACKEND_PAGE_BYTES
23
24 typedef intptr_t page_index_t;
25 #ifdef LISP_FEATURE_WIN32
26 #define PAGE_INDEX_FMT "Id"
27 #else
28 #define PAGE_INDEX_FMT "ld"
29 #endif
30
31 typedef signed char generation_index_t;
32
33 extern void gc_init(void);
34 extern void gc_initialize_pointers(void);
35 extern void collect_garbage(generation_index_t last_gen);
36 extern void gc_init_tables(void);
37
38
39 #include "os.h"
40
41 extern void set_auto_gc_trigger(os_vm_size_t usage);
42 extern void clear_auto_gc_trigger(void);
43
44 #include "fixnump.h"
45
46 extern boolean maybe_gc(os_context_t *context);
47
48 extern os_vm_size_t bytes_consed_between_gcs;
49
50 #endif /* _GC_H_ */