* (If the page is written into, we catch the exception, make
* the page writable, and clear this flag.) */
write_protected :1,
- /* This flag is set when the above write_protected flag is
- * cleared by the sigbus handler. This is useful for
- * re-scavenging pages that are written during a GC. */
+ /* 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
+ * written during a GC. */
write_protected_cleared :1,
- /* The region the page is allocated to: 0 for a free page; 1
+ /* the region the page is allocated to: 0 for a free page; 1
* for boxed objects; 2 for unboxed objects. If the page is
* free the following slots are invalid (well the bytes_used
* must be 0). */
int first_object_offset;
};
+/* values for the page.allocated field */
#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)
void *free_pointer;
void *end_addr; /* pointer to the byte after the last usable byte */
- /* needed when closing the region */
+ /* These are needed when closing the region. */
int first_page;
int last_page;
void *start_addr;