StuBS
|
Query information about the processor. More...
Classes | |
union | Reg |
Structure for register values returned by cpuid instruction. More... | |
Functions | |
Reg | get (Function eax) |
Get CPU identification and feature information. More... | |
bool | has (enum FeatureECX feature) |
Check if feature is provided by this system. More... | |
bool | has (enum FeatureEDX feature) |
Check if feature is provided by this system. More... | |
bool | has (enum ExtendedFeatureEDX feature) |
Check if feature is provided by this system. More... | |
Query information about the processor.
cpuid
instruction, which can return information about the processor. It should therefor not be confused with functionality to retrieve the ID of the current CPU (core)! enum CPUID::FeatureECX |
Enumerator | |
---|---|
FEATURE_SSE3 | Prescott New Instructions-SSE3 (PNI) |
FEATURE_PCLMUL | Carry-less Multiplication. |
FEATURE_DTES64 | 64-bit debug store (edx bit 21) |
FEATURE_MONITOR | MONITOR and MWAIT instructions (SSE3) |
FEATURE_DS_CPL | CPL qualified debug store. |
FEATURE_VMX | Virtual Machine eXtensions. |
FEATURE_SMX | Safer Mode Extensions (LaGrande) |
FEATURE_EST | Enhanced SpeedStep. |
FEATURE_TM2 | Thermal Monitor 2. |
FEATURE_SSSE3 | Supplemental SSE3 instructions. |
FEATURE_CID | L1 Context ID. |
FEATURE_SDBG | Silicon Debug interface. |
FEATURE_FMA | Fused multiply-add (FMA3) |
FEATURE_CX16 | CMPXCHG16B instruction. |
FEATURE_ETPRD | Can disable sending task priority messages. |
FEATURE_PDCM | Perfmon & debug capability. |
FEATURE_PCIDE | Process context identifiers (CR4 bit 17) |
FEATURE_DCA | Direct cache access for DMA writes. |
FEATURE_SSE4_1 | SSE4.1 instructions. |
FEATURE_SSE4_2 | SSE4.2 instructions. |
FEATURE_X2APIC | x2APIC |
FEATURE_MOVBE | MOVBE instruction (big-endian) |
FEATURE_POPCNT | POPCNT instruction. |
FEATURE_TSC_DEADLINE | APIC implements one-shot operation using a TSC deadline value. |
FEATURE_AES | AES instruction set. |
FEATURE_XSAVE | XSAVE, XRESTOR, XSETBV, XGETBV. |
FEATURE_OSXSAVE | XSAVE enabled by OS. |
FEATURE_AVX | Advanced Vector Extensions. |
FEATURE_F16C | F16C (half-precision) FP feature. |
FEATURE_RDRND | RDRAND (on-chip random number generator) feature. |
FEATURE_HYPERVISOR | Hypervisor present (always zero on physical CPUs) |
enum CPUID::FeatureEDX |
Enumerator | |
---|---|
FEATURE_FPU | Onboard x87 FPU. |
FEATURE_VME | Virtual 8086 mode extensions (such as VIF, VIP, PIV) |
FEATURE_DE | Debugging extensions (CR4 bit 3) |
FEATURE_PSE | Page Size Extension. |
FEATURE_TSC | Time Stamp Counter. |
FEATURE_MSR | Model-specific registers. |
FEATURE_PAE | Physical Address Extension. |
FEATURE_MCE | Machine Check Exception. |
FEATURE_CX8 | CMPXCHG8 (compare-and-swap) instruction. |
FEATURE_APIC | Onboard Advanced Programmable Interrupt Controller. |
FEATURE_SEP | SYSENTER and SYSEXIT instructions. |
FEATURE_MTRR | Memory Type Range Registers. |
FEATURE_PGE | Page Global Enable bit in CR4. |
FEATURE_MCA | Machine check architecture. |
FEATURE_CMOV | Conditional move and FCMOV instructions. |
FEATURE_PAT | Page Attribute Table. |
FEATURE_PSE36 | 36-bit page size extension |
FEATURE_PSN | Processor Serial Number. |
FEATURE_CLF | CLFLUSH instruction (SSE2) |
FEATURE_DTES | Debug store: save trace of executed jumps. |
FEATURE_ACPI | Onboard thermal control MSRs for ACPI. |
FEATURE_MMX | MMX instructions. |
FEATURE_FXSR | FXSAVE, FXRESTOR instructions, CR4 bit 9. |
FEATURE_SSE | SSE instructions (a.k.a. Katmai New Instructions) |
FEATURE_SSE2 | SSE2 instructions. |
FEATURE_SS | CPU cache implements self-snoop. |
FEATURE_HTT | Hyper-threading. |
FEATURE_TM1 | Thermal monitor automatically limits temperature. |
FEATURE_IA64 | IA64 processor emulating x86. |
FEATURE_PBE | Pending Break Enable (PBE# pin) wakeup capability. |
enum CPUID::Function |
Enumerator | |
---|---|
HIGHEST_FUNCTION_PARAMETER | Maximum Input Value for Basic CPUID Information (in register |
MANUFACTURER_ID | CPU String (in register |
PROCESSOR_INFO | Version Information like Type, Family, Model (in register |
FEATURE_BITS | Feature Information (in register |
CACHE_INFORMATION | Cache and TLB Information. |
PROCESSOR_SERIAL_NUMBER | deprecated |
HIGHEST_EXTENDED_FUNCTION | Maximum Input Value for Extended Function CPUID (in register |
EXTENDED_PROCESSOR_INFO | Extended Processor Signature and Feature Bits (in register |
EXTENDED_FEATURE_BITS | Extended Feature Information (in register |
PROCESSOR_BRAND_STRING_1 | Processor Brand String (1/3) |
PROCESSOR_BRAND_STRING_2 | Processor Brand String (2/3) |
PROCESSOR_BRAND_STRING_3 | Processor Brand String (3/3) |
ADVANCED_POWER_MANAGEMENT | Advanced Power Management (with Invariant TSC in register |
ADDRESS_SIZES | Linear/Physical Address size (in register |
Get CPU identification and feature information.
eax | Requested feature |
cpuid
for the requested feature
|
inline |
Check if feature is provided by this system.
feature | Extended feature to test |
true
if available, false
if either feature or extended features are unavailable
|
inline |
Check if feature is provided by this system.
feature | Feature to test |
true
if available, false
otherwise
|
inline |
Check if feature is provided by this system.
feature | Feature to test |
true
if available, false
otherwise