X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/3e170ce000f1506b7b5d2c5c7faec85ceabb573d..4d15aeb193b2c68f1d38666c317f8d3734f5f083:/osfmk/i386/cpu_capabilities.h diff --git a/osfmk/i386/cpu_capabilities.h b/osfmk/i386/cpu_capabilities.h index 1c25db294..0f1b7dadd 100644 --- a/osfmk/i386/cpu_capabilities.h +++ b/osfmk/i386/cpu_capabilities.h @@ -71,6 +71,8 @@ #define kHasHLE 0x0000000200000000ULL #define kHasRDSEED 0x0000000800000000ULL #define kHasADX 0x0000000400000000ULL +#define kHasMPX 0x0000001000000000ULL +#define kHasSGX 0x0000002000000000ULL #ifndef __ASSEMBLER__ @@ -80,7 +82,7 @@ __BEGIN_DECLS extern uint64_t _get_cpu_capabilities( void ); __END_DECLS -inline static +__inline static int _NumCPUs( void ) { return (int) (_get_cpu_capabilities() & kNumCPUs) >> kNumCPUsShift; @@ -198,10 +200,14 @@ int _NumCPUs( void ) #define _COMM_PAGE_GTOD_GENERATION (_COMM_PAGE_START_ADDRESS+0x06c) /* used by gettimeofday() */ #define _COMM_PAGE_GTOD_NS_BASE (_COMM_PAGE_START_ADDRESS+0x070) /* used by gettimeofday() */ #define _COMM_PAGE_GTOD_SEC_BASE (_COMM_PAGE_START_ADDRESS+0x078) /* used by gettimeofday() */ + /* NOTE: APPROX_TIME must be aligned to 64-byte cache line size: */ #define _COMM_PAGE_APPROX_TIME (_COMM_PAGE_START_ADDRESS+0x080) /* used by mach_approximate_time() */ #define _COMM_PAGE_APPROX_TIME_SUPPORTED (_COMM_PAGE_START_ADDRESS+0x088) /* used by mach_approximate_time() */ +/* Align following entries to next cache line */ +#define _COMM_PAGE_CONT_TIMEBASE (_COMM_PAGE_START_ADDRESS+0x0C0) /* used by mach_continuous_time() */ +#define _COMM_PAGE_BOOTTIME_USEC (_COMM_PAGE_START_ADDRESS+0x0C8) /* uint64_t boottime */ #define _COMM_PAGE_END (_COMM_PAGE_START_ADDRESS+0xfff) /* end of common page */ @@ -235,15 +241,17 @@ int _NumCPUs( void ) #define _COMM_TEXT_PREEMPT_OFFSET (0x5a0) /* called from withing pfz */ #define _COMM_TEXT_BACKOFF_OFFSET (0x600) /* called from PFZ */ +#define _COMM_TEXT_RET_OFFSET (0x680) /* called from PFZ */ #define _COMM_TEXT_PFZ_START_OFFSET (0xc00) /* offset for Preemption Free Zone */ #define _COMM_TEXT_PFZ_ENQUEUE_OFFSET (0xc00) /* internal FIFO enqueue */ #define _COMM_TEXT_PFZ_DEQUEUE_OFFSET (0xc80) /* internal FIFO dequeue */ -#define _COMM_TEXT_UNUSED_OFFSET (0xd80) /* end of routines in text page */ -#define _COMM_TEXT_PFZ_END_OFFSET (0xfff) /* offset for end of PFZ */ +#define _COMM_TEXT_UNUSED_OFFSET (0xd00) /* end of routines in text page */ +#define _COMM_TEXT_PFZ_END_OFFSET (0xd00) /* offset for end of PFZ */ #define _COMM_PAGE_PREEMPT (_COMM_PAGE_TEXT_START+_COMM_TEXT_PREEMPT_OFFSET) #define _COMM_PAGE_BACKOFF (_COMM_PAGE_TEXT_START+_COMM_TEXT_BACKOFF_OFFSET) +#define _COMM_PAGE_RET (_COMM_PAGE_TEXT_START+_COMM_TEXT_RET_OFFSET) #define _COMM_PAGE_PFZ_START (_COMM_PAGE_TEXT_START+_COMM_PAGE_PFZ_START_OFFSET)