]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/arm64/genassym.c
xnu-7195.101.1.tar.gz
[apple/xnu.git] / osfmk / arm64 / genassym.c
index 5c06aabce0675053b8fab8d66a610763af73760f..afe165947475ed96fde5d3e6f9ecf605ec0cad58 100644 (file)
 /*
  * @OSF_COPYRIGHT@
  */
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie Mellon
  * the rights to redistribute these changes.
  */
 #include <pexpert/arm64/boot.h>
 #include <arm64/proc_reg.h>
 #include <prng/random.h>
-
-#if    CONFIG_DTRACE
-#define NEED_DTRACE_DEFS
-#include <../bsd/sys/lockstat.h>
-#endif /* CONFIG_DTRACE */
+#if HIBERNATION
+#include <IOKit/IOHibernatePrivate.h>
+#include <machine/pal_hibernate.h>
+#endif /* HIBERNATION */
 
 /*
  * genassym.c is used to produce an
  * the values, but we cannot run anything on the target machine.
  */
 
-#define DECLARE(SYM,VAL) \
-       __asm("DEFINITION__define__" SYM ":\t .ascii \"%0\"" : : "n"  ((u_long)(VAL)))
+#define DECLARE(SYM, VAL) \
+       __asm("DEFINITION__define__" SYM ":\t .ascii \"%0\"" : : "i"  ((u_long)(VAL)))
 
 
-int    main(
-               int             argc,
-               char            ** argv);
+int main(int     argc,
+    char ** argv);
 
 int
-main(
-       int     argc,
-       char    **argv)
+main(int     argc,
+    char ** argv)
 {
+       DECLARE("AST_URGENT", AST_URGENT);
 
-       DECLARE("T_PREFETCH_ABT",       T_PREFETCH_ABT);
-       DECLARE("T_DATA_ABT",           T_DATA_ABT);
-
-       DECLARE("AST_URGENT",           AST_URGENT);
-       DECLARE("AST_PREEMPTION",       AST_PREEMPTION);
-
-       DECLARE("TH_RECOVER",           offsetof(struct thread, recover));
-       DECLARE("TH_CONTINUATION",      offsetof(struct thread, continuation));
-       DECLARE("TH_KERNEL_STACK",      offsetof(struct thread, kernel_stack));
+       DECLARE("TH_RECOVER", offsetof(struct thread, recover));
        DECLARE("TH_KSTACKPTR", offsetof(struct thread, machine.kstackptr));
-       DECLARE("THREAD_UTHREAD",       offsetof(struct thread, uthread));
-
-       DECLARE("TASK_MACH_EXC_PORT",
-               offsetof(struct task, exc_actions[EXC_MACH_SYSCALL].port));
+       DECLARE("TH_THREAD_ID", offsetof(struct thread, thread_id));
+#if defined(HAS_APPLE_PAC)
+       DECLARE("TH_ROP_PID", offsetof(struct thread, machine.rop_pid));
+       DECLARE("TH_JOP_PID", offsetof(struct thread, machine.jop_pid));
+       DECLARE("TH_DISABLE_USER_JOP", offsetof(struct thread, machine.disable_user_jop));
+#endif /* defined(HAS_APPLE_PAC) */
 
        /* These fields are being added on demand */
-       DECLARE("ACT_TASK",     offsetof(struct thread, task));
        DECLARE("ACT_CONTEXT", offsetof(struct thread, machine.contextData));
-       DECLARE("ACT_UPCB",     offsetof(struct thread, machine.upcb));
-//     DECLARE("ACT_PCBDATA",  offsetof(struct thread, machine.contextData.ss));
-       DECLARE("ACT_UNEON", offsetof(struct thread, machine.uNeon));
-//     DECLARE("ACT_NEONDATA", offsetof(struct thread, machine.contextData.ns));
-       DECLARE("TH_CTH_SELF",  offsetof(struct thread, machine.cthread_self));
-       DECLARE("TH_CTH_DATA",  offsetof(struct thread, machine.cthread_data));
-       DECLARE("ACT_PREEMPT_CNT",      offsetof(struct thread, machine.preemption_count));
-       DECLARE("ACT_CPUDATAP", offsetof(struct thread, machine.CpuDatap));
-       DECLARE("ACT_MAP",      offsetof(struct thread, map));
-       DECLARE("ACT_DEBUGDATA",        offsetof(struct thread, machine.DebugData));
-       DECLARE("TH_IOTIER_OVERRIDE",   offsetof(struct thread, iotier_override));
-       DECLARE("TH_RWLOCK_CNT",        offsetof(struct thread, rwlock_count));
-       DECLARE("TH_SCHED_FLAGS",       offsetof(struct thread, sched_flags));
-       DECLARE("TH_SFLAG_RW_PROMOTED_BIT",             TH_SFLAG_RW_PROMOTED_BIT);
-
-       DECLARE("TH_MACH_SYSCALLS", offsetof(struct thread, syscalls_mach));
-       DECLARE("TH_UNIX_SYSCALLS", offsetof(struct thread, syscalls_unix));
-       DECLARE("TASK_BSD_INFO", offsetof(struct task, bsd_info));
-
-       DECLARE("MACH_TRAP_TABLE_COUNT", MACH_TRAP_TABLE_COUNT);
-       DECLARE("MACH_TRAP_TABLE_ENTRY_SIZE", sizeof(mach_trap_t));
-
-       DECLARE("MAP_PMAP",     offsetof(struct _vm_map, pmap));
+       DECLARE("TH_CTH_SELF", offsetof(struct thread, machine.cthread_self));
+       DECLARE("ACT_PREEMPT_CNT", offsetof(struct thread, machine.preemption_count));
+       DECLARE("ACT_CPUDATAP", offsetof(struct thread, machine.CpuDatap));
+       DECLARE("ACT_DEBUGDATA", offsetof(struct thread, machine.DebugData));
+       DECLARE("TH_IOTIER_OVERRIDE", offsetof(struct thread, iotier_override));
+       DECLARE("TH_RWLOCK_CNT", offsetof(struct thread, rwlock_count));
+       DECLARE("TH_TMP_ALLOC_CNT", offsetof(struct thread, t_temp_alloc_count));
+       DECLARE("TH_TASK", offsetof(struct thread, task));
+
+#if defined(HAS_APPLE_PAC)
+       DECLARE("TASK_ROP_PID", offsetof(struct task, rop_pid));
+       DECLARE("TASK_JOP_PID", offsetof(struct task, jop_pid));
+#endif /* defined(HAS_APPLE_PAC) */
+
 
        DECLARE("ARM_CONTEXT_SIZE", sizeof(arm_context_t));
 
-       DECLARE("CONTEXT_SS", offsetof(arm_context_t, ss));
        DECLARE("SS_FLAVOR", offsetof(arm_context_t, ss.ash.flavor));
-       DECLARE("ARM_SAVED_STATE32", ARM_SAVED_STATE32);
        DECLARE("ARM_SAVED_STATE64", ARM_SAVED_STATE64);
        DECLARE("ARM_SAVED_STATE64_COUNT", ARM_SAVED_STATE64_COUNT);
 
-       DECLARE("SS32_W0", offsetof(arm_context_t, ss.ss_32.r[0]));
-       DECLARE("SS32_W2", offsetof(arm_context_t, ss.ss_32.r[2]));
-       DECLARE("SS32_W4", offsetof(arm_context_t, ss.ss_32.r[4]));
-       DECLARE("SS32_W6", offsetof(arm_context_t, ss.ss_32.r[6]));
-       DECLARE("SS32_W8", offsetof(arm_context_t, ss.ss_32.r[8]));
-       DECLARE("SS32_W10", offsetof(arm_context_t, ss.ss_32.r[10]));
-       DECLARE("SS32_W12", offsetof(arm_context_t, ss.ss_32.r[12]));
-       DECLARE("SS32_SP", offsetof(arm_context_t, ss.ss_32.sp));
-       DECLARE("SS32_LR", offsetof(arm_context_t, ss.ss_32.lr));
-       DECLARE("SS32_PC", offsetof(arm_context_t, ss.ss_32.pc));
-       DECLARE("SS32_CPSR", offsetof(arm_context_t, ss.ss_32.cpsr));
-       DECLARE("SS32_VADDR", offsetof(arm_context_t, ss.ss_32.far));
-       DECLARE("SS32_STATUS", offsetof(arm_context_t, ss.ss_32.esr));
-
        DECLARE("SS64_X0", offsetof(arm_context_t, ss.ss_64.x[0]));
        DECLARE("SS64_X2", offsetof(arm_context_t, ss.ss_64.x[2]));
        DECLARE("SS64_X4", offsetof(arm_context_t, ss.ss_64.x[4]));
@@ -190,6 +156,7 @@ main(
        DECLARE("SS64_X10", offsetof(arm_context_t, ss.ss_64.x[10]));
        DECLARE("SS64_X12", offsetof(arm_context_t, ss.ss_64.x[12]));
        DECLARE("SS64_X14", offsetof(arm_context_t, ss.ss_64.x[14]));
+       DECLARE("SS64_X15", offsetof(arm_context_t, ss.ss_64.x[15]));
        DECLARE("SS64_X16", offsetof(arm_context_t, ss.ss_64.x[16]));
        DECLARE("SS64_X18", offsetof(arm_context_t, ss.ss_64.x[18]));
        DECLARE("SS64_X19", offsetof(arm_context_t, ss.ss_64.x[19]));
@@ -209,25 +176,15 @@ main(
        DECLARE("SS64_CPSR", offsetof(arm_context_t, ss.ss_64.cpsr));
        DECLARE("SS64_FAR", offsetof(arm_context_t, ss.ss_64.far));
        DECLARE("SS64_ESR", offsetof(arm_context_t, ss.ss_64.esr));
+#if defined(HAS_APPLE_PAC)
+       DECLARE("SS64_JOPHASH", offsetof(arm_context_t, ss.ss_64.jophash));
+#endif /* defined(HAS_APPLE_PAC) */
 
-       DECLARE("CONTEXT_NS", offsetof(arm_context_t, ns));
        DECLARE("NS_FLAVOR", offsetof(arm_context_t, ns.nsh.flavor));
        DECLARE("NS_COUNT", offsetof(arm_context_t, ns.nsh.count));
-       DECLARE("ARM_NEON_SAVED_STATE32", ARM_NEON_SAVED_STATE32);
        DECLARE("ARM_NEON_SAVED_STATE64", ARM_NEON_SAVED_STATE64);
        DECLARE("ARM_NEON_SAVED_STATE64_COUNT", ARM_NEON_SAVED_STATE64_COUNT);
 
-       DECLARE("NS32_Q0", offsetof(arm_context_t, ns.ns_32.v.q[0]));
-       DECLARE("NS32_Q2", offsetof(arm_context_t, ns.ns_32.v.q[2]));
-       DECLARE("NS32_Q4", offsetof(arm_context_t, ns.ns_32.v.q[4]));
-       DECLARE("NS32_Q6", offsetof(arm_context_t, ns.ns_32.v.q[6]));
-       DECLARE("NS32_Q8", offsetof(arm_context_t, ns.ns_32.v.q[8]));
-       DECLARE("NS32_Q10", offsetof(arm_context_t, ns.ns_32.v.q[10]));
-       DECLARE("NS32_Q12", offsetof(arm_context_t, ns.ns_32.v.q[12]));
-       DECLARE("NS32_Q14", offsetof(arm_context_t, ns.ns_32.v.q[14]));
-       DECLARE("NS32_FPSR", offsetof(arm_context_t, ns.ns_32.fpsr));
-       DECLARE("NS32_FPCR", offsetof(arm_context_t, ns.ns_32.fpcr));
-
        DECLARE("NS64_D8", offsetof(arm_context_t, ns.ns_64.v.d[8]));
        DECLARE("NS64_D9", offsetof(arm_context_t, ns.ns_64.v.d[9]));
        DECLARE("NS64_D10", offsetof(arm_context_t, ns.ns_64.v.d[10]));
@@ -256,175 +213,126 @@ main(
        DECLARE("NS64_FPSR", offsetof(arm_context_t, ns.ns_64.fpsr));
        DECLARE("NS64_FPCR", offsetof(arm_context_t, ns.ns_64.fpcr));
 
+       DECLARE("ARM_KERNEL_CONTEXT_SIZE", sizeof(arm_kernel_context_t));
+
+       DECLARE("SS64_KERNEL_X16", offsetof(arm_kernel_context_t, ss.x[0]));
+       DECLARE("SS64_KERNEL_X17", offsetof(arm_kernel_context_t, ss.x[1]));
+       DECLARE("SS64_KERNEL_X19", offsetof(arm_kernel_context_t, ss.x[2]));
+       DECLARE("SS64_KERNEL_X20", offsetof(arm_kernel_context_t, ss.x[3]));
+       DECLARE("SS64_KERNEL_X21", offsetof(arm_kernel_context_t, ss.x[4]));
+       DECLARE("SS64_KERNEL_X22", offsetof(arm_kernel_context_t, ss.x[5]));
+       DECLARE("SS64_KERNEL_X23", offsetof(arm_kernel_context_t, ss.x[6]));
+       DECLARE("SS64_KERNEL_X24", offsetof(arm_kernel_context_t, ss.x[7]));
+       DECLARE("SS64_KERNEL_X25", offsetof(arm_kernel_context_t, ss.x[8]));
+       DECLARE("SS64_KERNEL_X26", offsetof(arm_kernel_context_t, ss.x[9]));
+       DECLARE("SS64_KERNEL_X27", offsetof(arm_kernel_context_t, ss.x[10]));
+       DECLARE("SS64_KERNEL_X28", offsetof(arm_kernel_context_t, ss.x[11]));
+       DECLARE("SS64_KERNEL_FP", offsetof(arm_kernel_context_t, ss.fp));
+       DECLARE("SS64_KERNEL_LR", offsetof(arm_kernel_context_t, ss.lr));
+       DECLARE("SS64_KERNEL_SP", offsetof(arm_kernel_context_t, ss.sp));
+       DECLARE("SS64_KERNEL_PC", offsetof(arm_kernel_context_t, ss.pc));
+       DECLARE("SS64_KERNEL_CPSR", offsetof(arm_kernel_context_t, ss.cpsr));
+#if defined(HAS_APPLE_PAC)
+       DECLARE("SS64_KERNEL_JOPHASH", offsetof(arm_kernel_context_t, ss.jophash));
+#endif /* defined(HAS_APPLE_PAC) */
+
+       DECLARE("NS64_KERNEL_D8", offsetof(arm_kernel_context_t, ns.d[0]));
+       DECLARE("NS64_KERNEL_D9", offsetof(arm_kernel_context_t, ns.d[1]));
+       DECLARE("NS64_KERNEL_D10", offsetof(arm_kernel_context_t, ns.d[2]));
+       DECLARE("NS64_KERNEL_D11", offsetof(arm_kernel_context_t, ns.d[3]));
+       DECLARE("NS64_KERNEL_D12", offsetof(arm_kernel_context_t, ns.d[4]));
+       DECLARE("NS64_KERNEL_D13", offsetof(arm_kernel_context_t, ns.d[5]));
+       DECLARE("NS64_KERNEL_D14", offsetof(arm_kernel_context_t, ns.d[6]));
+       DECLARE("NS64_KERNEL_D15", offsetof(arm_kernel_context_t, ns.d[7]));
+
+       DECLARE("NS64_KERNEL_FPCR", offsetof(arm_kernel_context_t, ns.fpcr));
+
+
+
        DECLARE("PGBYTES", ARM_PGBYTES);
        DECLARE("PGSHIFT", ARM_PGSHIFT);
-       DECLARE("PGMASK", ARM_PGMASK);
-
-
-       DECLARE("VM_MIN_ADDRESS",       VM_MIN_ADDRESS);
-       DECLARE("VM_MAX_ADDRESS",       VM_MAX_ADDRESS);
-       DECLARE("VM_MIN_KERNEL_ADDRESS",        VM_MIN_KERNEL_ADDRESS);
-       DECLARE("VM_MAX_KERNEL_ADDRESS",        VM_MAX_KERNEL_ADDRESS);
-       DECLARE("KERNELBASE",           VM_MIN_KERNEL_ADDRESS);
-       DECLARE("KERNEL_STACK_SIZE",    KERNEL_STACK_SIZE);
-       DECLARE("TBI_MASK",             TBI_MASK);
-
-       DECLARE("KERN_INVALID_ADDRESS", KERN_INVALID_ADDRESS);
-
-
-       DECLARE("MAX_CPUS",     MAX_CPUS);
-
-       DECLARE("cdeSize",
-               sizeof(struct cpu_data_entry));
-
-       DECLARE("cdSize",
-               sizeof(struct cpu_data));
-
-        DECLARE("CPU_ACTIVE_THREAD",
-               offsetof(cpu_data_t, cpu_active_thread));
-        DECLARE("CPU_ACTIVE_STACK",
-               offsetof(cpu_data_t, cpu_active_stack));
-        DECLARE("CPU_ISTACKPTR",
-               offsetof(cpu_data_t, istackptr));
-        DECLARE("CPU_INTSTACK_TOP",
-               offsetof(cpu_data_t, intstack_top));
-        DECLARE("CPU_EXCEPSTACKPTR",
-               offsetof(cpu_data_t, excepstackptr));
-        DECLARE("CPU_EXCEPSTACK_TOP",
-               offsetof(cpu_data_t, excepstack_top));
-        DECLARE("CPU_FIQSTACKPTR",
-               offsetof(cpu_data_t, fiqstackptr));
-        DECLARE("CPU_FIQSTACK_TOP",
-               offsetof(cpu_data_t, fiqstack_top));
-        DECLARE("CPU_NUMBER_GS",
-               offsetof(cpu_data_t,cpu_number));
-        DECLARE("CPU_IDENT",
-               offsetof(cpu_data_t,cpu_ident));
-        DECLARE("CPU_RUNNING",
-               offsetof(cpu_data_t,cpu_running));
-        DECLARE("CPU_MCOUNT_OFF",
-               offsetof(cpu_data_t,cpu_mcount_off));
-       DECLARE("CPU_PENDING_AST",
-               offsetof(cpu_data_t,cpu_pending_ast));
-       DECLARE("CPU_PROCESSOR",
-               offsetof(cpu_data_t,cpu_processor));
-       DECLARE("CPU_CACHE_DISPATCH",
-               offsetof(cpu_data_t,cpu_cache_dispatch));
-        DECLARE("CPU_BASE_TIMEBASE",
-               offsetof(cpu_data_t,cpu_base_timebase));
-       DECLARE("CPU_DECREMENTER",
-               offsetof(cpu_data_t,cpu_decrementer));
-       DECLARE("CPU_GET_DECREMENTER_FUNC",
-               offsetof(cpu_data_t,cpu_get_decrementer_func));
-       DECLARE("CPU_SET_DECREMENTER_FUNC",
-               offsetof(cpu_data_t,cpu_set_decrementer_func));
-       DECLARE("CPU_GET_FIQ_HANDLER",
-               offsetof(cpu_data_t,cpu_get_fiq_handler));
-       DECLARE("CPU_TBD_HARDWARE_ADDR",
-               offsetof(cpu_data_t,cpu_tbd_hardware_addr));
-       DECLARE("CPU_TBD_HARDWARE_VAL",
-               offsetof(cpu_data_t,cpu_tbd_hardware_val));
-       DECLARE("CPU_INT_STATE",
-               offsetof(cpu_data_t,cpu_int_state));
-       DECLARE("INTERRUPT_HANDLER",
-               offsetof(cpu_data_t,interrupt_handler));
-       DECLARE("INTERRUPT_TARGET",
-               offsetof(cpu_data_t,interrupt_target));
-       DECLARE("INTERRUPT_REFCON",
-               offsetof(cpu_data_t,interrupt_refCon));
-       DECLARE("INTERRUPT_NUB",
-               offsetof(cpu_data_t,interrupt_nub));
-       DECLARE("INTERRUPT_SOURCE",
-               offsetof(cpu_data_t,interrupt_source));
-       DECLARE("CPU_USER_DEBUG",
-               offsetof(cpu_data_t, cpu_user_debug));
-       DECLARE("CPU_STAT_IRQ",
-               offsetof(cpu_data_t, cpu_stat.irq_ex_cnt));
-       DECLARE("CPU_STAT_IRQ_WAKE",
-               offsetof(cpu_data_t, cpu_stat.irq_ex_cnt_wake));
-       DECLARE("CPU_RESET_HANDLER",
-               offsetof(cpu_data_t, cpu_reset_handler));
-       DECLARE("CPU_RESET_ASSIST",
-               offsetof(cpu_data_t, cpu_reset_assist));
-       DECLARE("CPU_REGMAP_PADDR",
-               offsetof(cpu_data_t, cpu_regmap_paddr));
-       DECLARE("CPU_PHYS_ID",
-               offsetof(cpu_data_t, cpu_phys_id));
-       DECLARE("RTCLOCK_DATAP",
-               offsetof(cpu_data_t, rtclock_datap));
-
-       DECLARE("RTCLOCKDataSize",
-               sizeof(rtclock_data_t));
-       DECLARE("RTCLOCK_ADJ_ABSTIME_LOW",
-               offsetof(rtclock_data_t, rtc_adj.abstime_val.low));
-       DECLARE("RTCLOCK_ADJ_ABSTIME_HIGH",
-               offsetof(rtclock_data_t, rtc_adj.abstime_val.high));
-       DECLARE("RTCLOCK_BASE_ABSTIME_LOW",
-               offsetof(rtclock_data_t, rtc_base.abstime_val.low));
-       DECLARE("RTCLOCK_BASE_ABSTIME_HIGH",
-               offsetof(rtclock_data_t, rtc_base.abstime_val.high));
-
-       DECLARE("SIGPdec",      SIGPdec);
-
-       DECLARE("rhdSize",
-               sizeof(struct reset_handler_data));
+
+       DECLARE("VM_MIN_KERNEL_ADDRESS", VM_MIN_KERNEL_ADDRESS);
+       DECLARE("KERNEL_STACK_SIZE", KERNEL_STACK_SIZE);
+       DECLARE("TBI_MASK", TBI_MASK);
+
+       DECLARE("cdeSize", sizeof(struct cpu_data_entry));
+
+       DECLARE("cdSize", sizeof(struct cpu_data));
+
+       DECLARE("CPU_ACTIVE_THREAD", offsetof(cpu_data_t, cpu_active_thread));
+       DECLARE("CPU_ISTACKPTR", offsetof(cpu_data_t, istackptr));
+       DECLARE("CPU_INTSTACK_TOP", offsetof(cpu_data_t, intstack_top));
+       DECLARE("CPU_EXCEPSTACK_TOP", offsetof(cpu_data_t, excepstack_top));
+#if __ARM_KERNEL_PROTECT__
+       DECLARE("CPU_EXC_VECTORS", offsetof(cpu_data_t, cpu_exc_vectors));
+#endif /* __ARM_KERNEL_PROTECT__ */
+       DECLARE("CPU_NUMBER_GS", offsetof(cpu_data_t, cpu_number));
+       DECLARE("CPU_PENDING_AST", offsetof(cpu_data_t, cpu_pending_ast));
+       DECLARE("CPU_INT_STATE", offsetof(cpu_data_t, cpu_int_state));
+       DECLARE("CPU_USER_DEBUG", offsetof(cpu_data_t, cpu_user_debug));
+       DECLARE("CPU_STAT_IRQ", offsetof(cpu_data_t, cpu_stat.irq_ex_cnt));
+       DECLARE("CPU_STAT_IRQ_WAKE", offsetof(cpu_data_t, cpu_stat.irq_ex_cnt_wake));
+       DECLARE("CPU_RESET_HANDLER", offsetof(cpu_data_t, cpu_reset_handler));
+       DECLARE("CPU_PHYS_ID", offsetof(cpu_data_t, cpu_phys_id));
+
+       DECLARE("RTCLOCKDataSize", sizeof(rtclock_data_t));
+
+       DECLARE("rhdSize", sizeof(struct reset_handler_data));
 #if WITH_CLASSIC_S2R || !__arm64__
-       DECLARE("stSize",
-               sizeof(SleepToken));
-#endif
-
-       DECLARE("CPU_DATA_ENTRIES",     offsetof(struct reset_handler_data, cpu_data_entries));
-       DECLARE("ASSIST_RESET_HANDLER", offsetof(struct reset_handler_data, assist_reset_handler));
-
-       DECLARE("CPU_DATA_PADDR",       offsetof(struct cpu_data_entry, cpu_data_paddr));
-
-
-       DECLARE("INTSTACK_SIZE",        INTSTACK_SIZE);
-
-       DECLARE("TIMER_TSTAMP",
-               offsetof(struct timer, tstamp));
-       DECLARE("THREAD_TIMER",
-               offsetof(struct processor, processor_data.thread_timer));
-       DECLARE("KERNEL_TIMER",
-               offsetof(struct processor, processor_data.kernel_timer));
-       DECLARE("SYSTEM_STATE",
-               offsetof(struct processor, processor_data.system_state));
-       DECLARE("USER_STATE",
-               offsetof(struct processor, processor_data.user_state));
-       DECLARE("CURRENT_STATE",
-               offsetof(struct processor, processor_data.current_state));
-
-       DECLARE("SYSTEM_TIMER",
-               offsetof(struct thread, system_timer));
-       DECLARE("USER_TIMER",
-               offsetof(struct thread, user_timer));
-
-#if !CONFIG_SKIP_PRECISE_USER_KERNEL_TIME
-       DECLARE("PRECISE_USER_KERNEL_TIME",
-               offsetof(struct thread, precise_user_kernel_time));
-#endif
-
-       DECLARE("BA_VIRT_BASE",
-               offsetof(struct boot_args, virtBase));
-       DECLARE("BA_PHYS_BASE",
-               offsetof(struct boot_args, physBase));
-       DECLARE("BA_MEM_SIZE",
-               offsetof(struct boot_args, memSize));
-       DECLARE("BA_TOP_OF_KERNEL_DATA",
-               offsetof(struct boot_args, topOfKernelData));
-       DECLARE("BA_DEVICE_TREE",
-               offsetof(struct boot_args, deviceTreeP));
-       DECLARE("BA_DEVICE_TREE_LENGTH",
-               offsetof(struct boot_args, deviceTreeLength));
-
-       DECLARE("ENTROPY_INDEX_PTR",
-               offsetof(entropy_data_t, index_ptr));
-       DECLARE("ENTROPY_BUFFER",
-               offsetof(entropy_data_t, buffer));
-       DECLARE("ENTROPY_DATA_SIZE", sizeof(struct entropy_data));
+       DECLARE("stSize", sizeof(SleepToken));
+#endif /* WITH_CLASSIC_S2R || !__arm64__ */
 
-       DECLARE("SR_RESTORE_TCR_EL1", offsetof(struct sysreg_restore, tcr_el1));
+       DECLARE("CPU_DATA_ENTRIES", offsetof(struct reset_handler_data, cpu_data_entries));
+
+       DECLARE("CPU_DATA_PADDR", offsetof(struct cpu_data_entry, cpu_data_paddr));
+
+       DECLARE("INTSTACK_SIZE", INTSTACK_SIZE);
+       DECLARE("EXCEPSTACK_SIZE", EXCEPSTACK_SIZE);
 
+       DECLARE("PAGE_MAX_SHIFT", PAGE_MAX_SHIFT);
+       DECLARE("PAGE_MAX_SIZE", PAGE_MAX_SIZE);
+
+       DECLARE("BA_VIRT_BASE", offsetof(struct boot_args, virtBase));
+       DECLARE("BA_PHYS_BASE", offsetof(struct boot_args, physBase));
+       DECLARE("BA_MEM_SIZE", offsetof(struct boot_args, memSize));
+       DECLARE("BA_TOP_OF_KERNEL_DATA", offsetof(struct boot_args, topOfKernelData));
+       DECLARE("BA_BOOT_FLAGS", offsetof(struct boot_args, bootFlags));
+
+       DECLARE("SR_RESTORE_TCR_EL1", offsetof(struct sysreg_restore, tcr_el1));
 
-       return (0);
+#if XNU_MONITOR
+       DECLARE("PMAP_CPU_DATA_PPL_STATE", offsetof(struct pmap_cpu_data, ppl_state));
+       DECLARE("PMAP_CPU_DATA_ARRAY_ENTRY_SIZE", sizeof(struct pmap_cpu_data_array_entry));
+       DECLARE("PMAP_CPU_DATA_PPL_STACK", offsetof(struct pmap_cpu_data, ppl_stack));
+       DECLARE("PMAP_CPU_DATA_KERN_SAVED_SP", offsetof(struct pmap_cpu_data, ppl_kern_saved_sp));
+       DECLARE("PMAP_CPU_DATA_SAVE_AREA", offsetof(struct pmap_cpu_data, save_area));
+       DECLARE("PMAP_COUNT", PMAP_COUNT);
+#endif /* XNU_MONITOR */
+
+
+#if defined(HAS_APPLE_PAC)
+       DECLARE("CPU_ROP_KEY", offsetof(cpu_data_t, rop_key));
+       DECLARE("CPU_JOP_KEY", offsetof(cpu_data_t, jop_key));
+#if __has_feature(ptrauth_function_pointer_type_discrimination)
+       DECLARE("THREAD_CONTINUE_T_DISC", __builtin_ptrauth_type_discriminator(thread_continue_t));
+#else
+       DECLARE("THREAD_CONTINUE_T_DISC", 0);
+#endif /* __has_feature(ptrauth_function_pointer_type_discrimination) */
+#endif /* defined(HAS_APPLE_PAC) */
+
+
+#if __ARM_ARCH_8_5__
+       DECLARE("CPU_SYNC_ON_CSWITCH", offsetof(cpu_data_t, sync_on_cswitch));
+#endif /* __ARM_ARCH_8_5__ */
+
+#if HIBERNATION
+       DECLARE("HIBHDR_STACKOFFSET", offsetof(IOHibernateImageHeader, restore1StackOffset));
+       DECLARE("HIBTRAMP_TTBR0", offsetof(pal_hib_tramp_result_t, ttbr0));
+       DECLARE("HIBTRAMP_TTBR1", offsetof(pal_hib_tramp_result_t, ttbr1));
+       DECLARE("HIBTRAMP_MEMSLIDE", offsetof(pal_hib_tramp_result_t, memSlide));
+       DECLARE("HIBGLOBALS_KERNELSLIDE", offsetof(pal_hib_globals_t, kernelSlide));
+#endif /* HIBERNATION */
+
+       return 0;
 }