]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/i386/i386_lowmem.h
xnu-2050.18.24.tar.gz
[apple/xnu.git] / osfmk / i386 / i386_lowmem.h
index ffbb00b578724ce410008cd0e522770b74c9d47c..97fa060129d80fa8e735222fd6ed1b13356b0570 100644 (file)
 
 #ifdef __APPLE_API_PRIVATE
 
-#define I386_LOWMEM_RESERVED       0x18
+/*
+ * The kernel better be statically linked at VM_MIN_KERNEL_ADDRESS + 0x100000
+ */
+#define I386_KERNEL_IMAGE_BASE_PAGE    0x100
+
+#if defined(__i386__)
+#define I386_LOWMEM_RESERVED           0x18
 
-#define I386_HIB_PAGETABLE         0x13
-#define I386_HIB_PAGETABLE_COUNT    5
+#define I386_HIB_PAGETABLE             0x13
+#define I386_HIB_PAGETABLE_COUNT       5
+
+#elif defined(__x86_64__)
+/* For K64, only 3 pages are reserved
+ * - physical page zero, a gap page, and then real-mode-bootstrap/lowGlo.
+ * Note that the kernel virtual address 0xffffff8000002000 is re-mapped
+ * to the low globals and that physical page, 0x2000, is used by the bootstrap.
+ */
+#define I386_LOWMEM_RESERVED           3
+#endif
 
 #endif /* __APPLE_API_PRIVATE */