]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/arm/cpu_data_internal.h
xnu-4903.221.2.tar.gz
[apple/xnu.git] / osfmk / arm / cpu_data_internal.h
index 264e7ed96065892975e8f16202984d4dfd52c7c5..29acbc1e8b01dbd78db345cec87647be5c677f0b 100644 (file)
@@ -76,6 +76,7 @@ extern        reset_handler_data_t    ResetHandlerData;
 #define        CPUWINDOWS_BASE_MASK            0xFFFFFFFFFFF00000UL
 #define        CPUWINDOWS_BASE                 (VM_MAX_KERNEL_ADDRESS & CPUWINDOWS_BASE_MASK)
 #endif
+#define CPUWINDOWS_TOP                 (CPUWINDOWS_BASE + (MAX_CPUS * CPUWINDOWS_MAX * PAGE_SIZE))
 
 typedef struct cpu_data_entry {
        void                                    *cpu_data_paddr;             /* Cpu data physical address */
@@ -118,12 +119,13 @@ typedef struct cpu_data
        unsigned short                          cpu_flags;
        vm_offset_t                             istackptr;
        vm_offset_t                             intstack_top;
-       vm_offset_t                             fiqstackptr;
-       vm_offset_t                             fiqstack_top;
 #if __arm64__
        vm_offset_t                             excepstackptr;
        vm_offset_t                             excepstack_top;
        boolean_t                               cluster_master;
+#else
+       vm_offset_t                             fiqstackptr;
+       vm_offset_t                             fiqstack_top;
 #endif
        boolean_t                               interrupts_enabled;
        thread_t                                cpu_active_thread;
@@ -182,15 +184,14 @@ typedef struct cpu_data
        void                                    *cpu_tbd_hardware_val;
 
        void                                    *cpu_console_buf;
-       void                                    *cpu_chud;
 
        void                                    *cpu_idle_notify;
        uint64_t                                cpu_idle_latency;
        uint64_t                                cpu_idle_pop;
 
-#if    __arm__
+#if    __arm__ || __ARM_KERNEL_PROTECT__
        vm_offset_t                             cpu_exc_vectors;
-#endif
+#endif /* __ARM_KERNEL_PROTECT__ */
        vm_offset_t                             cpu_reset_handler;
        uint32_t                                cpu_reset_type;
        uintptr_t                               cpu_reset_assist;
@@ -259,7 +260,6 @@ typedef struct cpu_data
 #if MONOTONIC
        struct mt_cpu                           cpu_monotonic;
 #endif /* MONOTONIC */
-       struct prngContext                      *cpu_prng;
        cluster_type_t                          cpu_cluster_type;
        uint32_t                                cpu_cluster_id;
        uint32_t                                cpu_l2_id;
@@ -302,9 +302,10 @@ extern     unsigned int            LowExceptionVectorBase;
 
 extern cpu_data_t                      *cpu_datap(int cpu);
 extern cpu_data_t                      *cpu_data_alloc(boolean_t is_boot);
-extern void                                    cpu_data_init(cpu_data_t *cpu_data_ptr);
-extern void                                    cpu_data_free(cpu_data_t *cpu_data_ptr);
-extern kern_return_t           cpu_data_register(cpu_data_t *cpu_data_ptr);
+extern void                            cpu_stack_alloc(cpu_data_t*);
+extern void                            cpu_data_init(cpu_data_t *cpu_data_ptr);
+extern void                            cpu_data_free(cpu_data_t *cpu_data_ptr);
+extern kern_return_t                   cpu_data_register(cpu_data_t *cpu_data_ptr);
 extern cpu_data_t                      *processor_to_cpu_datap( processor_t processor);
 
 #if __arm64__