Change immobile space free pointers to alien vars
[sbcl.git] / src / runtime / gencgc-alloc-region.h
bloba248375fffbe00ee65244465ffaa910e6078318e
1 #ifndef _GENCGC_ALLOC_REGION_H_
2 #define _GENCGC_ALLOC_REGION_H_
4 #include "gc.h"
6 #ifndef LISP_FEATURE_GENCGC
7 #error "gencgc-alloc-region.h included, but LISP_FEATURE_GENCGC not defined"
8 #endif
10 /* Abstract out the data for an allocation region allowing a single
11 * routine to be used for allocation and closing. */
12 struct alloc_region {
14 /* These two are needed for quick allocation. */
15 void *free_pointer;
16 void *end_addr; /* pointer to the byte after the last usable byte */
18 /* These are needed when closing the region. */
19 page_index_t first_page;
20 page_index_t last_page;
21 void *start_addr;
24 #ifdef LISP_FEATURE_SEGREGATED_CODE
25 // One region for each of {BOXED,UNBOXED,CODE}_PAGE_FLAG
26 extern struct alloc_region gc_alloc_regions[3];
27 #else
28 extern struct alloc_region boxed_region;
29 extern struct alloc_region unboxed_region;
30 #endif
31 extern generation_index_t from_space, new_space;
32 extern struct weak_pointer *weak_pointers;
34 #endif /* _GENCGC_ALLOC_REGION_H_ */