ReactOS 0.4.15-dev-7677-g8209aa5
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 {
2061 } Bits;
2067
2072typedef union {
2076 struct {
2095 } Bits;
2101
2147#define CPUID_EXTENDED_STATE_SIZE_OFFSET 0x02
2148
2153typedef union {
2157 struct {
2172 } Bits;
2178
2187#define CPUID_INTEL_RDT_MONITORING 0x0F
2188
2214#define CPUID_INTEL_RDT_MONITORING_ENUMERATION_SUB_LEAF 0x00
2215
2221typedef union {
2225 struct {
2232 } Bits;
2238
2263#define CPUID_INTEL_RDT_MONITORING_L3_CACHE_SUB_LEAF 0x01
2264
2270typedef union {
2274 struct {
2288 } Bits;
2294
2303#define CPUID_INTEL_RDT_ALLOCATION 0x10
2304
2327#define CPUID_INTEL_RDT_ALLOCATION_ENUMERATION_SUB_LEAF 0x00
2328
2334typedef union {
2338 struct {
2353 } Bits;
2359
2387#define CPUID_INTEL_RDT_ALLOCATION_L3_CACHE_SUB_LEAF 0x01
2388
2394typedef union {
2398 struct {
2405 } Bits;
2411
2417typedef union {
2421 struct {
2428 } Bits;
2434
2440typedef union {
2444 struct {
2450 } Bits;
2456
2482#define CPUID_INTEL_RDT_ALLOCATION_L2_CACHE_SUB_LEAF 0x02
2483
2489typedef union {
2493 struct {
2500 } Bits;
2506
2512typedef union {
2516 struct {
2522 } Bits;
2528
2560#define CPUID_INTEL_RDT_ALLOCATION_MEMORY_BANDWIDTH_SUB_LEAF 0x03
2561
2567typedef union {
2571 struct {
2578 } Bits;
2584
2590typedef union {
2594 struct {
2604 } Bits;
2610
2616typedef union {
2620 struct {
2626 } Bits;
2632
2648#define CPUID_INTEL_SGX 0x12
2649
2677#define CPUID_INTEL_SGX_CAPABILITIES_0_SUB_LEAF 0x00
2678
2683typedef union {
2687 struct {
2708 } Bits;
2714
2719typedef union {
2723 struct {
2735 } Bits;
2741
2776#define CPUID_INTEL_SGX_CAPABILITIES_1_SUB_LEAF 0x01
2777
2811#define CPUID_INTEL_SGX_CAPABILITIES_RESOURCES_SUB_LEAF 0x02
2812
2817typedef union {
2821 struct {
2836 } Bits;
2842
2847typedef union {
2851 struct {
2858 } Bits;
2864
2869typedef union {
2873 struct {
2887 } Bits;
2893
2898typedef union {
2902 struct {
2909 } Bits;
2915
2924#define CPUID_INTEL_PROCESSOR_TRACE 0x14
2925
2951#define CPUID_INTEL_PROCESSOR_TRACE_MAIN_LEAF 0x00
2952
2957typedef union {
2961 struct {
2995 } Bits;
3001
3006typedef union {
3010 struct {
3037 } Bits;
3043
3077#define CPUID_INTEL_PROCESSOR_TRACE_SUB_LEAF 0x01
3078
3083typedef union {
3087 struct {
3097 } Bits;
3103
3108typedef union {
3112 struct {
3121 } Bits;
3127
3159#define CPUID_TIME_STAMP_COUNTER 0x15
3160
3194#define CPUID_PROCESSOR_FREQUENCY 0x16
3195
3200typedef union {
3204 struct {
3210 } Bits;
3216
3221typedef union {
3225 struct {
3231 } Bits;
3237
3242typedef union {
3246 struct {
3252 } Bits;
3258
3275#define CPUID_SOC_VENDOR 0x17
3276
3305#define CPUID_SOC_VENDOR_MAIN_LEAF 0x00
3306
3311typedef union {
3315 struct {
3327 } Bits;
3333
3362#define CPUID_SOC_VENDOR_BRAND_STRING1 0x01
3363
3368typedef union {
3372 CHAR8 BrandString[4];
3378
3407#define CPUID_SOC_VENDOR_BRAND_STRING2 0x02
3408
3437#define CPUID_SOC_VENDOR_BRAND_STRING3 0x03
3438
3462#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS 0x18
3463
3491#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_MAIN_LEAF 0x00
3492
3496typedef union {
3500 struct {
3534 } Bits;
3540
3544typedef union {
3548 struct {
3574 } Bits;
3580
3584#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INVALID 0x00
3585#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_DATA_TLB 0x01
3586#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INSTRUCTION_TLB 0x02
3587#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_UNIFIED_TLB 0x03
3591
3616#define CPUID_HYBRID_INFORMATION 0x1A
3617
3621#define CPUID_HYBRID_INFORMATION_MAIN_LEAF 0x00
3622
3627typedef union {
3631 struct {
3645 } Bits;
3651
3655#define CPUID_CORE_TYPE_INTEL_ATOM 0x20
3656#define CPUID_CORE_TYPE_INTEL_CORE 0x40
3660
3685#define CPUID_V2_EXTENDED_TOPOLOGY 0x1F
3686
3692#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_MODULE 0x03
3693#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_TILE 0x04
3694#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_DIE 0x05
3698
3716#define CPUID_GUESTTD_RUNTIME_ENVIRONMENT 0x21
3717
3721#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('I', 'n', 't', 'e')
3722#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 (' ', ' ', ' ', ' ')
3723#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('l', 'T', 'D', 'X')
3727
3745#define CPUID_EXTENDED_FUNCTION 0x80000000
3746
3768#define CPUID_EXTENDED_CPU_SIG 0x80000001
3769
3774typedef union {
3778 struct {
3794 } Bits;
3800
3805typedef union {
3809 struct {
3835 } Bits;
3841
3862#define CPUID_BRAND_STRING1 0x80000002
3863
3868typedef union {
3872 CHAR8 BrandString[4];
3878
3899#define CPUID_BRAND_STRING2 0x80000003
3900
3921#define CPUID_BRAND_STRING3 0x80000004
3922
3941#define CPUID_EXTENDED_CACHE_INFO 0x80000006
3942
3946typedef union {
3950 struct {
3966 } Bits;
3972
3976#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DISABLED 0x00
3977#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DIRECT_MAPPED 0x01
3978#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_2_WAY 0x02
3979#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_4_WAY 0x04
3980#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_8_WAY 0x06
3981#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_16_WAY 0x08
3982#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_32_WAY 0x0A
3983#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_48_WAY 0x0B
3984#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_64_WAY 0x0C
3985#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_96_WAY 0x0D
3986#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_128_WAY 0x0E
3987#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_FULL 0x0F
3991
4010#define CPUID_EXTENDED_TIME_STAMP_COUNTER 0x80000007
4011
4016typedef union {
4020 struct {
4027 } Bits;
4033
4052#define CPUID_VIR_PHY_ADDRESS_SIZE 0x80000008
4053
4058typedef union {
4062 struct {
4076 } Bits;
4082
4083#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