0.8.5.22:
[sbcl.git] / src / runtime / gencgc.h
index 2852b1c..170fc09 100644 (file)
@@ -16,6 +16,8 @@
 #ifndef _GENCGC_H_
 #define _GENCGC_H_
 
+#include "genesis/code.h"
+
 void gc_free_heap(void);
 inline int find_page_index(void *);
 inline void *page_address(int);
@@ -32,7 +34,7 @@ struct page {
         write_protected :1,
        /* This flag is set when the above write_protected flag is 
         * cleared by the SIGBUS handler (or SIGSEGV handler, for some
-        * OSes). This is useful for * re-scavenging pages that are
+        * OSes). This is useful for re-scavenging pages that are
         * written during a GC. */
        write_protected_cleared :1,
        /* the region the page is allocated to: 0 for a free page; 1
@@ -70,27 +72,17 @@ struct page {
 #define FREE_PAGE 0
 #define BOXED_PAGE 1
 #define UNBOXED_PAGE 2
+
+/* values for the *_alloc_* parameters */
+#define ALLOC_BOXED 0
+#define ALLOC_UNBOXED 1
+#define ALLOC_QUICK 1
+
 \f
 /* the number of pages needed for the dynamic space - rounding up */
 #define NUM_PAGES ((DYNAMIC_SPACE_SIZE+4095)/4096)
 extern struct page page_table[NUM_PAGES];
 \f
-/* Abstract out the data for an allocation region allowing a single
- * routine to be used for allocation and closing. */
-struct alloc_region {
-
-    /* These two are needed for quick allocation. */
-    void  *free_pointer;
-    void  *end_addr; /* pointer to the byte after the last usable byte */
-
-    /* These are needed when closing the region. */
-    int  first_page;
-    int  last_page;
-    void  *start_addr;
-};
-
-extern struct alloc_region  boxed_region;
-extern struct alloc_region  unboxed_region;
 \f
 void  gencgc_pickup_dynamic(void);
 
@@ -99,5 +91,6 @@ void sniff_code_object(struct code *code, unsigned displacement);
 int  update_x86_dynamic_space_free_pointer(void);
 void  gc_alloc_update_page_tables(int unboxed,
                                  struct alloc_region *alloc_region);
-
-#endif _GENCGC_H_
+void gc_alloc_update_all_page_tables(void);
+void gc_set_region_empty(struct alloc_region *region);
+#endif /* _GENCGC_H_ */