+#define VM_USRSTACK32 ((vm_offset_t) 0xC0000000) /* ASLR slides stack down by up to 1 MB */
+#define VM_MAX_ADDRESS ((vm_offset_t) 0xFFE00000)
+
+
+#ifdef KERNEL_PRIVATE
+
+/* Kernel-wide values */
+
+#define KB (1024ULL)
+#define MB (1024*KB)
+#define GB (1024*MB)
+
+/*
+ * Maximum physical memory supported.
+ */
+#define K32_MAXMEM (32*GB)
+#define K64_MAXMEM (96*GB)
+#if defined(__i386__)
+#define KERNEL_MAXMEM K32_MAXMEM
+#else
+#define KERNEL_MAXMEM K64_MAXMEM
+#endif
+
+/*
+ * XXX
+ * The kernel max VM address is limited to 0xFF3FFFFF for now because
+ * some data structures are explicitly allocated at 0xFF400000 without
+ * VM's knowledge (see osfmk/i386/locore.s for the allocation of PTmap and co.).
+ * We can't let VM allocate memory from there.
+ */
+
+#if defined(__i386__)
+
+#define KERNEL_IMAGE_TO_PHYS(x) (x)
+#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t) 0x00001000U)
+#define VM_MIN_KERNEL_AND_KEXT_ADDRESS VM_MIN_KERNEL_ADDRESS
+#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t) 0xFE7FFFFFU)
+
+#elif defined(__x86_64__)
+
+#define KERNEL_IMAGE_TO_PHYS(x) (x)
+#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t) 0xFFFFFF8000000000UL)
+#define VM_MIN_KERNEL_PAGE ((ppnum_t)0)
+#define VM_MIN_KERNEL_AND_KEXT_ADDRESS (VM_MIN_KERNEL_ADDRESS - 0x80000000ULL)
+#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t) 0xFFFFFFFFFFFFEFFFUL)
+#define VM_MAX_KERNEL_ADDRESS_EFI32 ((vm_offset_t) 0xFFFFFF80FFFFEFFFUL)
+#define KEXT_ALLOC_MAX_OFFSET (2 * 1024 * 1024 * 1024UL)
+#define KEXT_ALLOC_BASE(x) ((x) - KEXT_ALLOC_MAX_OFFSET)
+#define KEXT_ALLOC_SIZE(x) (KEXT_ALLOC_MAX_OFFSET - (x))