]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/i386/cpu_capabilities.h
xnu-3248.40.184.tar.gz
[apple/xnu.git] / osfmk / i386 / cpu_capabilities.h
index b8d5027af7673f0ad41005303d0de215602b493a..9f33188c5d3e2015a50f0b2c5a17a83c593fe592 100644 (file)
 /* Extending into 64-bits from here: */ 
 #define        kHasRTM                 0x0000000100000000ULL
 #define        kHasHLE                 0x0000000200000000ULL
+#define        kHasRDSEED              0x0000000800000000ULL
+#define        kHasADX                 0x0000000400000000ULL
+#define        kHasMPX                 0x0000001000000000ULL
+#define        kHasSGX                 0x0000002000000000ULL
 
 
 #ifndef        __ASSEMBLER__
@@ -182,7 +186,10 @@ int _NumCPUs( void )
 #define _COMM_PAGE_MEMORY_SIZE         (_COMM_PAGE_START_ADDRESS+0x038)        /* uint64_t max memory size */
 
 #define _COMM_PAGE_CPUFAMILY           (_COMM_PAGE_START_ADDRESS+0x040)        /* uint32_t hw.cpufamily, x86*/
-#define _COMM_PAGE_UNUSED2             (_COMM_PAGE_START_ADDRESS+0x044)        /* [0x44,0x50) unused */
+#define _COMM_PAGE_KDEBUG_ENABLE       (_COMM_PAGE_START_ADDRESS+0x044)        /* uint32_t export "kdebug_enable" to userspace */
+#define        _COMM_PAGE_ATM_DIAGNOSTIC_CONFIG        (_COMM_PAGE_START_ADDRESS+0x48) /* uint32_t export "atm_diagnostic_config" to userspace */
+
+#define _COMM_PAGE_UNUSED2             (_COMM_PAGE_START_ADDRESS+0x04C)        /* [0x4C,0x50) unused */
 
 #define        _COMM_PAGE_TIME_DATA_START      (_COMM_PAGE_START_ADDRESS+0x050)        /* base of offsets below (_NT_SCALE etc) */
 #define _COMM_PAGE_NT_TSC_BASE         (_COMM_PAGE_START_ADDRESS+0x050)        /* used by nanotime() */
@@ -193,6 +200,10 @@ 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() */
+
 
 #define _COMM_PAGE_END                 (_COMM_PAGE_START_ADDRESS+0xfff)        /* end of common page */
 
@@ -229,7 +240,6 @@ int _NumCPUs( void )
 #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_PFZ_MUTEX_LOCK_OFFSET       (0xd00) /* internal pthread_mutex_lock() */
 #define _COMM_TEXT_UNUSED_OFFSET               (0xd80) /* end of routines in text page */
 #define _COMM_TEXT_PFZ_END_OFFSET              (0xfff) /* offset for end of PFZ */
 
@@ -241,7 +251,6 @@ int _NumCPUs( void )
 
 #define _COMM_PAGE_PFZ_ENQUEUE         (_COMM_PAGE_TEXT_START+_COMM_TEXT_PFZ_ENQUEUE_OFFSET)
 #define _COMM_PAGE_PFZ_DEQUEUE         (_COMM_PAGE_TEXT_START+_COMM_TEXT_PFZ_DEQUEUE_OFFSET)
-#define        _COMM_PAGE_PFZ_MUTEX_LOCK       (_COMM_PAGE_TEXT_START+_COMM_TEXT_PFZ_MUTEX_LOCK_OFFSET)
 
 #define        _COMM_PAGE_UNUSED6              (_COMM_PAGE_TEXT_START+_COMM_TEXT_UNUSED_OFFSET)        
 #define _COMM_PAGE_PFZ_END             (_COMM_PAGE_TEXT_START+_COMM_TEXT_PFZ_END_OFFSET)
@@ -266,7 +275,6 @@ symbol_name: nop
        CREATE_COMM_PAGE_SYMBOL(___backoff, _COMM_PAGE_BACKOFF)
        CREATE_COMM_PAGE_SYMBOL(___pfz_enqueue, _COMM_PAGE_PFZ_ENQUEUE)
        CREATE_COMM_PAGE_SYMBOL(___pfz_dequeue, _COMM_PAGE_PFZ_DEQUEUE)
-       CREATE_COMM_PAGE_SYMBOL(___pfz_mutex_lock, _COMM_PAGE_PFZ_MUTEX_LOCK)
        CREATE_COMM_PAGE_SYMBOL(___end_comm_page, _COMM_PAGE_END)
 
        .data           /* Required to make a well behaved symbol file */