.space 16*1024,0
.section __DATA, __data // Aligned data
-
- .globl EXT(CpuDataEntries)
- .align 12 // Page aligned
-LEXT(CpuDataEntries) // Cpu Data Entry Array
- .space (cdeSize_NUM*MAX_CPUS_NUM),0 // (filled with 0s)
-
- .globl EXT(BootCpuData)
- .align 12 // Page aligned
-LEXT(BootCpuData) // Per cpu data area
- .space cdSize_NUM,0 // (filled with 0s)
-
.align 3 // unsigned long long aligned Section
.globl EXT(RTClockData)
LEXT(RTClockData) // Real Time clock area
#if __arm64__
.section __DATA, __const
-#if defined(KERNEL_INTEGRITY_KTRR)
+#if defined(KERNEL_INTEGRITY_KTRR) || defined(KERNEL_INTEGRITY_CTRR)
/* reserve space for read only page tables */
.align 14
LEXT(ropagetable_begin)
+#if XNU_TARGET_OS_OSX
+ // A big auxKC might need more page tables, especially because
+ // it's not block mapped.
+ // Note that we don't distuinguish between KASAN or not: With
+ // a KASAN kernel, the effective auxKC limit is smaller.
+ .space 18*16*1024,0
+#elif KASAN
+ .space 16*16*1024,0
+#else
.space 14*16*1024,0
+#endif
#else
LEXT(ropagetable_begin)
-#endif /* defined(KERNEL_INTEGRITY_KTRR)*/
+#endif /* defined(KERNEL_INTEGRITY_KTRR) || defined(KERNEL_INTEGRITY_CTRR) */
LEXT(ropagetable_end)