ReactOS 0.4.16-dev-1537-g4e425b5
Cpuid.h
Go to the documentation of this file.
1
20#ifndef __INTEL_CPUID_H__
21#define __INTEL_CPUID_H__
22
45#define CPUID_SIGNATURE 0x00
46
50#define CPUID_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('G', 'e', 'n', 'u')
51#define CPUID_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('i', 'n', 'e', 'I')
52#define CPUID_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 ('n', 't', 'e', 'l')
56
81#define CPUID_VERSION_INFO 0x01
82
87typedef union {
91 struct {
100 } Bits;
106
110#define CPUID_VERSION_INFO_EAX_PROCESSOR_TYPE_ORIGINAL_OEM_PROCESSOR 0x00
111#define CPUID_VERSION_INFO_EAX_PROCESSOR_TYPE_INTEL_OVERDRIVE_PROCESSOR 0x01
112#define CPUID_VERSION_INFO_EAX_PROCESSOR_TYPE_DUAL_PROCESSOR 0x02
116
121typedef union {
125 struct {
154 } Bits;
160
165typedef union {
169 struct {
329 } Bits;
335
340typedef union {
344 struct {
532 } Bits;
538
710#define CPUID_CACHE_INFO 0x02
711
716typedef union {
720 struct {
727 } Bits;
731 UINT8 CacheDescriptor[4];
737
764#define CPUID_SERIAL_NUMBER 0x03
765
802#define CPUID_CACHE_PARAMS 0x04
803
808typedef union {
812 struct {
856 } Bits;
862
866#define CPUID_CACHE_PARAMS_CACHE_TYPE_NULL 0x00
867#define CPUID_CACHE_PARAMS_CACHE_TYPE_DATA 0x01
868#define CPUID_CACHE_PARAMS_CACHE_TYPE_INSTRUCTION 0x02
869#define CPUID_CACHE_PARAMS_CACHE_TYPE_UNIFIED 0x03
873
878typedef union {
882 struct {
898 } Bits;
904
909typedef union {
913 struct {
936 } Bits;
942
967#define CPUID_MONITOR_MWAIT 0x05
968
973typedef union {
977 struct {
984 } Bits;
990
995typedef union {
999 struct {
1006 } Bits;
1012
1017typedef union {
1021 struct {
1033 } Bits;
1039
1048typedef union {
1052 struct {
1085 } Bits;
1091
1114#define CPUID_THERMAL_POWER_MANAGEMENT 0x06
1115
1120typedef union {
1124 struct {
1204 } Bits;
1210
1215typedef union {
1219 struct {
1225 } Bits;
1231
1236typedef union {
1240 struct {
1256 } Bits;
1262
1301#define CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS 0x07
1302
1306#define CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS_SUB_LEAF_INFO 0x00
1307
1313typedef union {
1317 struct {
1454 } Bits;
1460
1466typedef union {
1470 struct {
1523 } Bits;
1529
1535typedef union {
1539 struct {
1599 } Bits;
1605
1623#define CPUID_DIRECT_CACHE_ACCESS_INFO 0x09
1624
1647#define CPUID_ARCHITECTURAL_PERFORMANCE_MONITORING 0x0A
1648
1653typedef union {
1657 struct {
1686 } Bits;
1692
1697typedef union {
1701 struct {
1731 } Bits;
1737
1742typedef union {
1746 struct {
1763 } Bits;
1769
1815#define CPUID_EXTENDED_TOPOLOGY 0x0B
1816
1820typedef union {
1824 struct {
1836 } Bits;
1842
1846typedef union {
1850 struct {
1864 } Bits;
1870
1874typedef union {
1878 struct {
1892 } Bits;
1898
1902#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_INVALID 0x00
1903#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT 0x01
1904#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_CORE 0x02
1908
1918#define CPUID_EXTENDED_STATE 0x0D
1919
1953#define CPUID_EXTENDED_STATE_MAIN_LEAF 0x00
1954
1959typedef union {
1963 struct {
1998 } Bits;
2004
2033#define CPUID_EXTENDED_STATE_SUB_LEAF 0x01
2034
2039typedef union {
2043 struct {
2065 } Bits;
2071
2076typedef union {
2080 struct {
2122 } Bits;
2128
2174#define CPUID_EXTENDED_STATE_SIZE_OFFSET 0x02
2175
2180typedef union {
2184 struct {
2199 } Bits;
2205
2214#define CPUID_INTEL_RDT_MONITORING 0x0F
2215
2241#define CPUID_INTEL_RDT_MONITORING_ENUMERATION_SUB_LEAF 0x00
2242
2248typedef union {
2252 struct {
2259 } Bits;
2265
2290#define CPUID_INTEL_RDT_MONITORING_L3_CACHE_SUB_LEAF 0x01
2291
2297typedef union {
2301 struct {
2315 } Bits;
2321
2330#define CPUID_INTEL_RDT_ALLOCATION 0x10
2331
2354#define CPUID_INTEL_RDT_ALLOCATION_ENUMERATION_SUB_LEAF 0x00
2355
2361typedef union {
2365 struct {
2380 } Bits;
2386
2414#define CPUID_INTEL_RDT_ALLOCATION_L3_CACHE_SUB_LEAF 0x01
2415
2421typedef union {
2425 struct {
2432 } Bits;
2438
2444typedef union {
2448 struct {
2455 } Bits;
2461
2467typedef union {
2471 struct {
2477 } Bits;
2483
2509#define CPUID_INTEL_RDT_ALLOCATION_L2_CACHE_SUB_LEAF 0x02
2510
2516typedef union {
2520 struct {
2527 } Bits;
2533
2539typedef union {
2543 struct {
2549 } Bits;
2555
2587#define CPUID_INTEL_RDT_ALLOCATION_MEMORY_BANDWIDTH_SUB_LEAF 0x03
2588
2594typedef union {
2598 struct {
2605 } Bits;
2611
2617typedef union {
2621 struct {
2631 } Bits;
2637
2643typedef union {
2647 struct {
2653 } Bits;
2659
2675#define CPUID_INTEL_SGX 0x12
2676
2704#define CPUID_INTEL_SGX_CAPABILITIES_0_SUB_LEAF 0x00
2705
2710typedef union {
2714 struct {
2735 } Bits;
2741
2746typedef union {
2750 struct {
2762 } Bits;
2768
2803#define CPUID_INTEL_SGX_CAPABILITIES_1_SUB_LEAF 0x01
2804
2838#define CPUID_INTEL_SGX_CAPABILITIES_RESOURCES_SUB_LEAF 0x02
2839
2844typedef union {
2848 struct {
2863 } Bits;
2869
2874typedef union {
2878 struct {
2885 } Bits;
2891
2896typedef union {
2900 struct {
2914 } Bits;
2920
2925typedef union {
2929 struct {
2936 } Bits;
2942
2951#define CPUID_INTEL_PROCESSOR_TRACE 0x14
2952
2978#define CPUID_INTEL_PROCESSOR_TRACE_MAIN_LEAF 0x00
2979
2984typedef union {
2988 struct {
3022 } Bits;
3028
3033typedef union {
3037 struct {
3064 } Bits;
3070
3104#define CPUID_INTEL_PROCESSOR_TRACE_SUB_LEAF 0x01
3105
3110typedef union {
3114 struct {
3124 } Bits;
3130
3135typedef union {
3139 struct {
3148 } Bits;
3154
3186#define CPUID_TIME_STAMP_COUNTER 0x15
3187
3221#define CPUID_PROCESSOR_FREQUENCY 0x16
3222
3227typedef union {
3231 struct {
3237 } Bits;
3243
3248typedef union {
3252 struct {
3258 } Bits;
3264
3269typedef union {
3273 struct {
3279 } Bits;
3285
3302#define CPUID_SOC_VENDOR 0x17
3303
3332#define CPUID_SOC_VENDOR_MAIN_LEAF 0x00
3333
3338typedef union {
3342 struct {
3354 } Bits;
3360
3389#define CPUID_SOC_VENDOR_BRAND_STRING1 0x01
3390
3395typedef union {
3399 CHAR8 BrandString[4];
3405
3434#define CPUID_SOC_VENDOR_BRAND_STRING2 0x02
3435
3464#define CPUID_SOC_VENDOR_BRAND_STRING3 0x03
3465
3489#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS 0x18
3490
3518#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_MAIN_LEAF 0x00
3519
3523typedef union {
3527 struct {
3561 } Bits;
3567
3571typedef union {
3575 struct {
3601 } Bits;
3607
3611#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INVALID 0x00
3612#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_DATA_TLB 0x01
3613#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INSTRUCTION_TLB 0x02
3614#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_UNIFIED_TLB 0x03
3618
3643#define CPUID_HYBRID_INFORMATION 0x1A
3644
3648#define CPUID_HYBRID_INFORMATION_MAIN_LEAF 0x00
3649
3654typedef union {
3658 struct {
3672 } Bits;
3678
3682#define CPUID_CORE_TYPE_INTEL_ATOM 0x20
3683#define CPUID_CORE_TYPE_INTEL_CORE 0x40
3687
3712#define CPUID_V2_EXTENDED_TOPOLOGY 0x1F
3713
3719#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_MODULE 0x03
3720#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_TILE 0x04
3721#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_DIE 0x05
3725
3743#define CPUID_GUESTTD_RUNTIME_ENVIRONMENT 0x21
3744
3748#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('I', 'n', 't', 'e')
3749#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 (' ', ' ', ' ', ' ')
3750#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('l', 'T', 'D', 'X')
3754
3772#define CPUID_EXTENDED_FUNCTION 0x80000000
3773
3795#define CPUID_EXTENDED_CPU_SIG 0x80000001
3796
3801typedef union {
3805 struct {
3821 } Bits;
3827
3832typedef union {
3836 struct {
3862 } Bits;
3868
3889#define CPUID_BRAND_STRING1 0x80000002
3890
3895typedef union {
3899 CHAR8 BrandString[4];
3905
3926#define CPUID_BRAND_STRING2 0x80000003
3927
3948#define CPUID_BRAND_STRING3 0x80000004
3949
3968#define CPUID_EXTENDED_CACHE_INFO 0x80000006
3969
3973typedef union {
3977 struct {
3993 } Bits;
3999
4003#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DISABLED 0x00
4004#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DIRECT_MAPPED 0x01
4005#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_2_WAY 0x02
4006#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_4_WAY 0x04
4007#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_8_WAY 0x06
4008#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_16_WAY 0x08
4009#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_32_WAY 0x0A
4010#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_48_WAY 0x0B
4011#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_64_WAY 0x0C
4012#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_96_WAY 0x0D
4013#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_128_WAY 0x0E
4014#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_FULL 0x0F
4018
4037#define CPUID_EXTENDED_TIME_STAMP_COUNTER 0x80000007
4038
4043typedef union {
4047 struct {
4054 } Bits;
4060
4079#define CPUID_VIR_PHY_ADDRESS_SIZE 0x80000008
4080
4085typedef union {
4089 struct {
4103 } Bits;
4109
4110#endif
signed char CHAR8
unsigned char UINT8
unsigned int UINT32
UINT32 SelfInitializingCache
Definition: Cpuid.h:825
UINT32 MaximumAddressableIdsForLogicalProcessors
Definition: Cpuid.h:843
UINT32 FullyAssociativeCache
Definition: Cpuid.h:829
UINT32 MaximumAddressableIdsForProcessorCores
Definition: Cpuid.h:855
UINT32 LinePartitions
Definition: Cpuid.h:892
UINT32 CacheInclusiveness
Definition: Cpuid.h:927
UINT32 ComplexCacheIndexing
Definition: Cpuid.h:934
UINT32 SmallestMonitorLineSize
Definition: Cpuid.h:982
UINT32 LargestMonitorLineSize
Definition: Cpuid.h:1004
UINT32 ExtensionsSupported
Definition: Cpuid.h:1026
UINT32 Reserved1
[Bits 15:14] Reserved
Definition: Cpuid.h:96
UINT32 ProcessorType
[Bits 13:12] Processor Type
Definition: Cpuid.h:95
UINT32 Reserved2
Reserved.
Definition: Cpuid.h:99
UINT32 ExtendedModelId
[Bits 19:16] Extended Model ID
Definition: Cpuid.h:97
UINT32 FamilyId
[Bits 11:8] Family
Definition: Cpuid.h:94
UINT32 Model
[Bits 7:4] Model
Definition: Cpuid.h:93
UINT32 SteppingId
[Bits 3:0] Stepping ID
Definition: Cpuid.h:92
UINT32 ExtendedFamilyId
[Bits 27:20] Extended Family ID
Definition: Cpuid.h:98
UINT32 MaximumAddressableIdsForLogicalProcessors
Definition: Cpuid.h:147
UINT32 CacheLineSize
Definition: Cpuid.h:136
UINT32 InitialLocalApicId
Definition: Cpuid.h:153
UINT32 xTPR_Update_Control
Definition: Cpuid.h:248
UINT32 ParaVirtualized
Definition: Cpuid.h:328