+#define _COMM_PAGE32_AREA_LENGTH ( 1 * 4096 ) /* reserved length of entire comm area */
+#define _COMM_PAGE32_BASE_ADDRESS ( 0xffff0000 ) /* base address of allocated memory */
+#define _COMM_PAGE32_START_ADDRESS ( _COMM_PAGE32_BASE_ADDRESS ) /* address traditional commpage code starts on */
+#define _COMM_PAGE32_AREA_USED ( 1 * 4096 ) /* this is the amt actually allocated */
+#define _COMM_PAGE32_SIGS_OFFSET 0x8000 /* offset to routine signatures */
+
+#define _COMM_PAGE64_AREA_LENGTH ( 1 * 4096 ) /* reserved length of entire comm area (2MB) */
+#ifdef __ASSEMBLER__
+#define _COMM_PAGE64_BASE_ADDRESS ( 0x00007fffffe00000 ) /* base address of allocated memory */
+#else /* __ASSEMBLER__ */
+#define _COMM_PAGE64_BASE_ADDRESS ( 0x00007fffffe00000ULL ) /* base address of allocated memory */
+#endif /* __ASSEMBLER__ */
+#define _COMM_PAGE64_START_ADDRESS ( _COMM_PAGE64_BASE_ADDRESS ) /* address traditional commpage code starts on */
+#define _COMM_PAGE64_AREA_USED ( 1 * 4096 ) /* this is the amt actually populated */
+
+/* no need for an Objective-C area on Intel */
+#define _COMM_PAGE32_OBJC_SIZE 0ULL
+#define _COMM_PAGE32_OBJC_BASE 0ULL
+#define _COMM_PAGE64_OBJC_SIZE 0ULL
+#define _COMM_PAGE64_OBJC_BASE 0ULL
+
+#ifdef KERNEL_PRIVATE
+
+/* Inside the kernel, comm page addresses are absolute addresses
+ * assuming they are a part of the 32-bit commpage. They may
+ * be mapped somewhere else, especially for the 64-bit commpage.
+ */
+#define _COMM_PAGE_START_ADDRESS _COMM_PAGE32_START_ADDRESS
+#define _COMM_PAGE_SIGS_OFFSET _COMM_PAGE32_SIGS_OFFSET
+
+#else /* !KERNEL_PRIVATE */
+
+#if defined(__i386__)
+
+#define _COMM_PAGE_AREA_LENGTH _COMM_PAGE32_AREA_LENGTH
+#define _COMM_PAGE_BASE_ADDRESS _COMM_PAGE32_BASE_ADDRESS
+#define _COMM_PAGE_START_ADDRESS _COMM_PAGE32_START_ADDRESS
+#define _COMM_PAGE_AREA_USED _COMM_PAGE32_AREA_USED
+#define _COMM_PAGE_SIGS_OFFSET _COMM_PAGE32_SIGS_OFFSET
+
+#elif defined(__x86_64__)
+
+#define _COMM_PAGE_AREA_LENGTH _COMM_PAGE64_AREA_LENGTH
+#define _COMM_PAGE_BASE_ADDRESS _COMM_PAGE64_BASE_ADDRESS
+#define _COMM_PAGE_START_ADDRESS _COMM_PAGE64_START_ADDRESS
+#define _COMM_PAGE_AREA_USED _COMM_PAGE64_AREA_USED
+
+#else
+#error architecture not supported
+#endif