+
+#if GENCGC_CARD_BYTES > USHRT_MAX
+# if GENCGC_CARD_BYTES > UINT_MAX
+# error "GENCGC_CARD_BYTES unexpectedly large."
+# else
+# define PAGE_BYTES_FMT "u"
+ typedef unsigned int page_bytes_t;
+# endif
+#else
+# define PAGE_BYTES_FMT "hu"
+ typedef unsigned short page_bytes_t;
+#endif
+
+/* Note that this structure is also used from Lisp-side in
+ * src/code/room.lisp, and the Lisp-side structure layout is currently
+ * not groveled from C code but hardcoded. Any changes to the
+ * structure layout need to be also made there.
+ *
+ * FIXME: We should probably just define this structure in Lisp, and
+ * output the C version in genesis. -- JES, 2006-12-30.
+ */