ReactOS 0.4.16-dev-2358-g0df3463
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 {
1540 } Bits;
1546
1552typedef union {
1556 struct {
1629 } Bits;
1635
1653#define CPUID_DIRECT_CACHE_ACCESS_INFO 0x09
1654
1677#define CPUID_ARCHITECTURAL_PERFORMANCE_MONITORING 0x0A
1678
1683typedef union {
1687 struct {
1716 } Bits;
1722
1727typedef union {
1731 struct {
1761 } Bits;
1767
1772typedef union {
1776 struct {
1793 } Bits;
1799
1845#define CPUID_EXTENDED_TOPOLOGY 0x0B
1846
1850typedef union {
1854 struct {
1866 } Bits;
1872
1876typedef union {
1880 struct {
1894 } Bits;
1900
1904typedef union {
1908 struct {
1922 } Bits;
1928
1932#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_INVALID 0x00
1933#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_SMT 0x01
1934#define CPUID_EXTENDED_TOPOLOGY_LEVEL_TYPE_CORE 0x02
1938
1948#define CPUID_EXTENDED_STATE 0x0D
1949
1983#define CPUID_EXTENDED_STATE_MAIN_LEAF 0x00
1984
1989typedef union {
1993 struct {
2028 } Bits;
2034
2063#define CPUID_EXTENDED_STATE_SUB_LEAF 0x01
2064
2069typedef union {
2073 struct {
2095 } Bits;
2101
2106typedef union {
2110 struct {
2152 } Bits;
2158
2204#define CPUID_EXTENDED_STATE_SIZE_OFFSET 0x02
2205
2210typedef union {
2214 struct {
2229 } Bits;
2235
2244#define CPUID_INTEL_RDT_MONITORING 0x0F
2245
2271#define CPUID_INTEL_RDT_MONITORING_ENUMERATION_SUB_LEAF 0x00
2272
2278typedef union {
2282 struct {
2289 } Bits;
2295
2320#define CPUID_INTEL_RDT_MONITORING_L3_CACHE_SUB_LEAF 0x01
2321
2327typedef union {
2331 struct {
2345 } Bits;
2351
2360#define CPUID_INTEL_RDT_ALLOCATION 0x10
2361
2384#define CPUID_INTEL_RDT_ALLOCATION_ENUMERATION_SUB_LEAF 0x00
2385
2391typedef union {
2395 struct {
2410 } Bits;
2416
2444#define CPUID_INTEL_RDT_ALLOCATION_L3_CACHE_SUB_LEAF 0x01
2445
2451typedef union {
2455 struct {
2462 } Bits;
2468
2474typedef union {
2478 struct {
2485 } Bits;
2491
2497typedef union {
2501 struct {
2507 } Bits;
2513
2539#define CPUID_INTEL_RDT_ALLOCATION_L2_CACHE_SUB_LEAF 0x02
2540
2546typedef union {
2550 struct {
2557 } Bits;
2563
2569typedef union {
2573 struct {
2579 } Bits;
2585
2617#define CPUID_INTEL_RDT_ALLOCATION_MEMORY_BANDWIDTH_SUB_LEAF 0x03
2618
2624typedef union {
2628 struct {
2635 } Bits;
2641
2647typedef union {
2651 struct {
2661 } Bits;
2667
2673typedef union {
2677 struct {
2683 } Bits;
2689
2705#define CPUID_INTEL_SGX 0x12
2706
2734#define CPUID_INTEL_SGX_CAPABILITIES_0_SUB_LEAF 0x00
2735
2740typedef union {
2744 struct {
2765 } Bits;
2771
2776typedef union {
2780 struct {
2792 } Bits;
2798
2833#define CPUID_INTEL_SGX_CAPABILITIES_1_SUB_LEAF 0x01
2834
2868#define CPUID_INTEL_SGX_CAPABILITIES_RESOURCES_SUB_LEAF 0x02
2869
2874typedef union {
2878 struct {
2893 } Bits;
2899
2904typedef union {
2908 struct {
2915 } Bits;
2921
2926typedef union {
2930 struct {
2944 } Bits;
2950
2955typedef union {
2959 struct {
2966 } Bits;
2972
2981#define CPUID_INTEL_PROCESSOR_TRACE 0x14
2982
3008#define CPUID_INTEL_PROCESSOR_TRACE_MAIN_LEAF 0x00
3009
3014typedef union {
3018 struct {
3052 } Bits;
3058
3063typedef union {
3067 struct {
3094 } Bits;
3100
3134#define CPUID_INTEL_PROCESSOR_TRACE_SUB_LEAF 0x01
3135
3140typedef union {
3144 struct {
3154 } Bits;
3160
3165typedef union {
3169 struct {
3178 } Bits;
3184
3216#define CPUID_TIME_STAMP_COUNTER 0x15
3217
3251#define CPUID_PROCESSOR_FREQUENCY 0x16
3252
3257typedef union {
3261 struct {
3267 } Bits;
3273
3278typedef union {
3282 struct {
3288 } Bits;
3294
3299typedef union {
3303 struct {
3309 } Bits;
3315
3332#define CPUID_SOC_VENDOR 0x17
3333
3362#define CPUID_SOC_VENDOR_MAIN_LEAF 0x00
3363
3368typedef union {
3372 struct {
3384 } Bits;
3390
3419#define CPUID_SOC_VENDOR_BRAND_STRING1 0x01
3420
3425typedef union {
3429 CHAR8 BrandString[4];
3435
3464#define CPUID_SOC_VENDOR_BRAND_STRING2 0x02
3465
3494#define CPUID_SOC_VENDOR_BRAND_STRING3 0x03
3495
3519#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS 0x18
3520
3548#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_MAIN_LEAF 0x00
3549
3553typedef union {
3557 struct {
3591 } Bits;
3597
3601typedef union {
3605 struct {
3631 } Bits;
3637
3641#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INVALID 0x00
3642#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_DATA_TLB 0x01
3643#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_INSTRUCTION_TLB 0x02
3644#define CPUID_DETERMINISTIC_ADDRESS_TRANSLATION_PARAMETERS_TRANSLATION_CACHE_TYPE_UNIFIED_TLB 0x03
3648
3673#define CPUID_HYBRID_INFORMATION 0x1A
3674
3678#define CPUID_HYBRID_INFORMATION_MAIN_LEAF 0x00
3679
3684typedef union {
3688 struct {
3702 } Bits;
3708
3712#define CPUID_CORE_TYPE_INTEL_ATOM 0x20
3713#define CPUID_CORE_TYPE_INTEL_CORE 0x40
3717
3742#define CPUID_V2_EXTENDED_TOPOLOGY 0x1F
3743
3749#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_MODULE 0x03
3750#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_TILE 0x04
3751#define CPUID_V2_EXTENDED_TOPOLOGY_LEVEL_TYPE_DIE 0x05
3755
3773#define CPUID_GUESTTD_RUNTIME_ENVIRONMENT 0x21
3774
3778#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EBX SIGNATURE_32 ('I', 'n', 't', 'e')
3779#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_ECX SIGNATURE_32 (' ', ' ', ' ', ' ')
3780#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EDX SIGNATURE_32 ('l', 'T', 'D', 'X')
3784
3802#define CPUID_EXTENDED_FUNCTION 0x80000000
3803
3825#define CPUID_EXTENDED_CPU_SIG 0x80000001
3826
3831typedef union {
3835 struct {
3851 } Bits;
3857
3862typedef union {
3866 struct {
3892 } Bits;
3898
3919#define CPUID_BRAND_STRING1 0x80000002
3920
3925typedef union {
3929 CHAR8 BrandString[4];
3935
3956#define CPUID_BRAND_STRING2 0x80000003
3957
3978#define CPUID_BRAND_STRING3 0x80000004
3979
3998#define CPUID_EXTENDED_CACHE_INFO 0x80000006
3999
4003typedef union {
4007 struct {
4023 } Bits;
4029
4033#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DISABLED 0x00
4034#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_DIRECT_MAPPED 0x01
4035#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_2_WAY 0x02
4036#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_4_WAY 0x04
4037#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_8_WAY 0x06
4038#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_16_WAY 0x08
4039#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_32_WAY 0x0A
4040#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_48_WAY 0x0B
4041#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_64_WAY 0x0C
4042#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_96_WAY 0x0D
4043#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_128_WAY 0x0E
4044#define CPUID_EXTENDED_CACHE_INFO_ECX_L2_ASSOCIATIVITY_FULL 0x0F
4048
4067#define CPUID_EXTENDED_TIME_STAMP_COUNTER 0x80000007
4068
4073typedef union {
4077 struct {
4084 } Bits;
4090
4109#define CPUID_VIR_PHY_ADDRESS_SIZE 0x80000008
4110
4115typedef union {
4119 struct {
4133 } Bits;
4139
4140#endif
signed char CHAR8
unsigned char UINT8
Definition: actypes.h:128
uint32_t UINT32
Definition: typedefs.h:59
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