* The commentary for the page table allocation field was
misleading, presumably not updated when the definitions for the
constants used for its actual contents were last changed, and cost
me a bit of surprise and time spent trying to figure out why core
file saving and loading worked at all.
* Updated the commentary on the allocation field to match
current reality, and added cross-references between the field
itself and the definitions for its contents, so that a future
desync between commentary and reality is less likely.
#define FUN_RAW_ADDR_OFFSET (offsetof(struct simple_fun, code) - FUN_POINTER_LOWTAG)
#endif
-/* values for the *_alloc_* parameters */
+/* values for the *_alloc_* parameters, also see the commentary for
+ * struct page in gencgc-internal.h. FIXME: Perhaps these constants
+ * should be there, or at least defined on gencgc only? */
#define FREE_PAGE_FLAG 0
#define BOXED_PAGE_FLAG 1
#define UNBOXED_PAGE_FLAG 2
* written during a GC. */
write_protected_cleared :1,
/* 000 free
- * 10? boxed data
- * 11? boxed code
- * 01? unboxed data
- * ??1 open region
+ * ?01 boxed data
+ * ?10 unboxed data
+ * ?11 code
+ * 1?? open region
+ *
+ * Constants for this field are defined in gc-internal.h, the
+ * xxx_PAGE_FLAG definitions.
*
* If the page is free the following slots are invalid, except
* for the bytes_used which must be zero. */