f209205d17ce874de28161f78844e6d9769d0f35
[sbcl.git] / src / runtime / gencgc-alloc-region.h
1 #ifndef _GENCGC_ALLOC_REGION_H_
2 #define _GENCGC_ALLOC_REGION_H_
3
4 #include "gc.h"
5
6 #ifndef LISP_FEATURE_GENCGC
7 #error "gencgc-alloc-region.h included, but LISP_FEATURE_GENCGC not defined"
8 #endif
9
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 {
13
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 */
17
18     /* These are needed when closing the region. */
19     page_index_t  first_page;
20     page_index_t  last_page;
21     void  *start_addr;
22 };
23
24 extern struct alloc_region  boxed_region;
25 extern struct alloc_region  unboxed_region;
26 extern generation_index_t from_space, new_space;
27 extern struct weak_pointer *weak_pointers;
28
29 #endif /*  _GENCGC_ALLOC_REGION_H_ */