cpuidpp 1.0.0
C++11 library for identifying CPU features
|
cpuidpp functions. More...
Functions | |
bool | acpi () |
Indicates whether Onboard thermal control MSRs for ACPI is supported. | |
bool | adx () |
Indicates whether Intel ADX (Multi-Precision Add-Carry Instruction Extensions) is supported. | |
bool | aes () |
Indicates whether the AES instruction set is supported. | |
bool | apic () |
Indicates whether Onboard Advanced Programmable Interrupt Controller is supported. | |
bool | avx () |
Indicates whether Advanced Vector Extensions are supported. | |
bool | avx2 () |
Indicates whether Advanced Vector Extensions 2 are supported. | |
bool | avx512_4fmaps () |
Indicates whether AVX-512 Multiply Accumulation Single precision is supported. | |
bool | avx512_4vnniw () |
Indicates whether AVX-512 Neural Network instructions are supported. | |
bool | avx512bw () |
Indicates whether AVX-512 Byte and Word instructions are supported. | |
bool | avx512cd () |
Indicates whether AVX-512 Conflict Detection Instructions are supported. | |
bool | avx512dq () |
Indicates whether AVX-512 Doubleword and Quadword Instructions are supported. | |
bool | avx512er () |
Indicates whether AVX-512 Exponential and Reciprocal Instructions are supported. | |
bool | avx512f () |
Indicates whether AVX-512 Foundation is supported. | |
bool | avx512ifma () |
Indicates whether AVX-512 Integer Fused Multiply-Add Instructions are supported. | |
bool | avx512pf () |
Indicates whether AVX-512 Prefetch Instructions are supported. | |
bool | avx512vbmi () |
Indicates whether AVX-512 Vector Bit Manipulation Instructions are supported. | |
bool | avx512vl () |
Indicates whether AVX-512 Vector Length Extensions are supported. | |
bool | avx512vpopcntdq () |
Indicates whether AVX-512 Vector Population Count D/Q are supported. | |
bool | bmi1 () |
Indicates whether the Bit Manipulation Instruction Set 1 is supported. | |
bool | bmi2 () |
Indicates whether the Bit Manipulation Instruction Set 2 is supported. | |
bool | clflushopt () |
Indicates whether the CLFLUSHOPT instruction is supported. | |
bool | clfsh () |
Indicates whether the CLFLUSH instruction is supported. | |
bool | clwb () |
Indicates whether the CLWB instruction is supported. | |
bool | cmov () |
Indicates whether the Conditional move and FCMOV instructions are supported. | |
bool | cnxt_id () |
Indicates whether L1 Context ID is supported. | |
bool | cx16 () |
Indicates whether the CMPXCHG16B instruction is supported. | |
bool | cx8 () |
Indicates whether the CMPXCHG8 (compare-and-swap) instruction is supported. | |
bool | dbx () |
Indicates whether Data breakpoint extensions are supported. | |
bool | dca () |
Indicates whether Direct cache access for DMA writes is supported. | |
bool | de () |
Indicates whether debugging extensions (CR4 bit 3) are supported. | |
bool | ds () |
Indicates whether Debug store: save trace of executed jumps are supported. | |
bool | ds_cpl () |
Indicates whether CPL qualified debug store is supported. | |
bool | dtes64 () |
Indicates whether 64-bit debug store (edx bit 21) is supported. | |
bool | eist () |
Indicates whether Enhanced SpeedStep is supported. | |
bool | erms () |
Indicates whether Enhanced REP MOVSB/STOSB is supported. | |
bool | extapic () |
Indicates whether Extended APIC space is supported. | |
bool | f16c () |
Indicates whether F16C (half-precision) FP is supported. | |
bool | fma () |
Indicates whether Fused multiply-add (FMA3) is supported. | |
bool | fpu () |
Indicates whether onboard x87 FPU is supported. | |
bool | fsgsbase () |
Indicates whether access to base of fs and gs is supported. | |
bool | fxsr () |
Indicates whether FXSAVE , FXRESTOR instructions, CR4 bit 9 are supported. | |
bool | fxsr_opt () |
Indicates whether FXSAVE/FXRSTOR optimizations are supported. | |
bool | hle () |
Indicates whether Transactional Synchronization Extensions are supported. | |
bool | htt () |
Indicates whether Hyper-threading is supported. | |
bool | hypervisor () |
Indicates whether we are running on a hypervisor (always 0 on a real CPU, but also with some hypervisors). | |
bool | ia64 () |
Indicates whether this is a IA64 processor emulating x86. | |
bool | intel_pt () |
Indicates whether Intel Processor Trace is supported. | |
bool | invpcid () |
Indicates whether the INVPCID instruction is supported. | |
bool | lm () |
Indicates whether Long mode is active. | |
bool | mca () |
Indicates whether the Machine Check Architecture is supported. | |
bool | mce () |
Indicates whether Machine Check Exception is supported. | |
bool | mmx () |
Indicates whether MMX instructions are supported. | |
bool | mmxext () |
Indicates whether Extended MMX is supported. | |
const std::string & | model () |
Returns the model of the CPU. | |
bool | monitor () |
Indicates whether MONITOR and MWAIT instructions are supported. | |
bool | movbe () |
Indicates whether the MOVBE instruction (big-endian) is supported. | |
bool | mp () |
Indicates whether the system is multiprocessor capable. | |
bool | mpx () |
Indicates whether Intel MPX (Memory Protection Extensions) is supported. | |
bool | msr () |
Indicates whether Model-specific registers are supported. | |
bool | mtrr () |
Indicates whether Memory Type Range Registers are supported. | |
bool | nx () |
Indicates whether NX bit is supported. | |
bool | ospke () |
Indicates whether PKU is enabled by OS. | |
bool | oxsave () |
Indicates whether XSAVE is enabled by OS. | |
bool | pae () |
Indicates whether Physical Address Extension is supported. | |
bool | pat () |
Indicates whether the Page Attribute Table is supported. | |
bool | pbe () |
Indicates whether Pending Break Enable (PBE# pin) wakeup is supported. | |
bool | pcid () |
Indicates whether Process context identifiers (CR4 bit 17) are supported. | |
bool | pclmulqdq () |
Indicates whether the PCLMULQDQ instruction is supported. | |
bool | pcommit () |
Indicates whether PCOMMIT instruction is supported. | |
bool | pcx_l2i () |
Indicates whether L2I perf counter extensions are supported. | |
bool | pdcm () |
Indicates whether Perfmon and debug capability is supported. | |
bool | pdpe1gb () |
Indicates whether Gibibyte pages are supported. | |
bool | perfctr_core () |
Indicates whether Core performance counter extensions are supported. | |
bool | perfctr_nb () |
Indicates whether NB performance counter extensions are supported. | |
bool | perftsc () |
Indicates whether Performance TSC is supported. | |
bool | pge () |
Indicates whether the Page Global Enable bit in CR4 is supported. | |
bool | pku () |
Indicates whether Memory Protection Keys for User-mode pages is supported. | |
bool | popcnt () |
Indicates whether the POPCNT instruction is supported. | |
bool | pqe () |
Indicates whether Platform Quality of Service Enforcement is supported. | |
bool | pqm () |
Indicates whether Platform Quality of Service Monitoring is supported. | |
bool | prefetchwt1 () |
Indicates whether the PREFETCHWT1 instruction is supported. | |
bool | pse () |
Indicates whether the Page Size Extension is supported. | |
bool | pse36 () |
Indicates whether the 36-bit page size extension is supported. | |
bool | psn () |
Indicates whether the Processor Serial Number is supported. | |
bool | rdpid () |
Indicates whether Read Processor ID is supported. | |
bool | rdrnd () |
Indicates whether the RDRAND (on-chip random number generator) instruction is supported. | |
bool | rdseed () |
Indicates whether the RDSEED instruction is supported. | |
bool | rdtscp () |
Indicates whether the RDTSCP instruction is supported. | |
bool | rtm () |
Indicates whether Transactional Synchronization Extensions are supported. | |
bool | sdbg () |
Indicates whether Silicon Debug interface is supported. | |
bool | sep () |
Indicates whether the SYSENTER and SYSEXIT instructions are supported. | |
bool | sgx () |
Indicates whether Software Guard Extensions are supported. | |
bool | sgx_lc () |
Indicates whether SGX Launch Configuration is supported. | |
bool | sha () |
Indicates whether Intel SHA extensions are supported. | |
bool | smap () |
Indicates whether Supervisor Mode Access Prevention is supported. | |
bool | smep () |
Indicates whether Supervisor-Mode Execution Prevention is supported. | |
bool | smx () |
Indicates whether Safer Mode Extensions are supported. | |
bool | ss () |
Indicates whether CPU cache supports self-snoop is supported. | |
bool | sse () |
Indicates whether SSE instructions are supported. | |
bool | sse2 () |
Indicates whether SSE2 instructions are supported. | |
bool | sse3 () |
Indicates whether SSE3 instructions are supported. | |
bool | sse4_1 () |
Indicates whether SSE4.1 instructions are supported. | |
bool | sse4_2 () |
Indicates whether SSE4.2 instructions are supported. | |
bool | ssse3 () |
Indicates whether SSSE3 instructions are supported. | |
bool | tm () |
Indicates whether Thermal monitor automatically limits temperature is supported. | |
bool | tm2 () |
Indicates whether Thermal Monitor 2 is supported. | |
bool | tsc () |
Indicates whether the Time Stamp Counter is supported. | |
bool | tsc_deadline () |
Indicates whether APIC supports one-shot operation using a TSC deadline value. | |
bool | umip () |
Indicates whether User-mode Instruction Prevention is supported. | |
const std::string & | vendor () |
Returns the vendor ID. | |
bool | vme () |
Indicates whether virtual 8086 mode extensions (such as VIF, VIP, PIV) are supported. | |
bool | vmx () |
Indicates whether Virtual Machine eXtensions are supported. | |
bool | x2apic () |
Indicates whether x2APIC is supported. | |
bool | xsave () |
Indicates whether XSAVE , XRESTOR , XSETBV , XGETBV are supported. | |
bool | xtpr () |
Indicates whether sending task priority messages can be disabled. | |
AMD feature flags | |
CPU features specific to AMD processors. | |
bool | abm () |
Indicates whether Advanced bit manipulation (LZCNT and POPCNT ) is supported. | |
bool | amd_3dnow () |
Indicates whether 3DNow! is supported. | |
bool | amd_3dnowext () |
Indicates whether Extended 3DNow! is supported. | |
bool | amd_3dnowprefetch () |
Indicates whether the PREFETCH and PREFETCHW instructions are supported. | |
bool | cmp_legacy () |
Indicates whether Hyperthreading is not valid. | |
bool | cr8_legacy () |
Indicates whether CR8 in 32-bit mode is supported. | |
bool | ibs () |
Indicates whether Instruction Based Sampling is supported. | |
bool | lahf_lm () |
Indicates whether LAHF/SAHF in long mode is supported. | |
bool | osvw () |
Indicates whether OS Visible Workaround is active. | |
bool | misalignsse () |
Indicates whether the Misaligned SSE mode is supported. | |
bool | skinit () |
Indicates whether SKINIT/STGI instructions are supported. | |
bool | syscall () |
Indicates whether SYSCALL and SYSRET instructions are supported. | |
bool | svm () |
Secure Virtual Machine. | |
bool | sse4a () |
Indicates whether SSE4a instructions are supported. | |
bool | wdt () |
Indicates whether the Watchdog timer is supported. | |
bool | xop () |
Indicates whether XOP instruction set is supported. | |
bool | lwp () |
Indicates whether Light Weight Profiling is supported. | |
bool | fma4 () |
Indicates whether 4 operands fused multiply-add is supported. | |
bool | tce () |
Indicates whether Translation Cache Extension is supported. | |
bool | nodeid_msr () |
Indicates whether NodeID MSR is supported. | |
bool | tbm () |
Indicates whether Trailing Bit Manipulation is supported. | |
bool | topoext () |
Indicates whether Topology Extensions are supported. | |
cpuidpp functions.
const std::string & cpuidpp::vendor | ( | ) |
Returns the vendor ID.
The following are known manufacturer ID string:
"AMDisbetter!"
– early engineering samples of AMD K5 processor"AuthenticAMD"
– AMD"CentaurHauls"
– Centaur (Including some VIA CPU)"CyrixInstead"
– Cyrix"GenuineIntel"
– Intel"TransmetaCPU"
– Transmeta"GenuineTMx86"
– Transmeta"Geode by NSC"
– National Semiconductor"NexGenDriven"
– NexGen"RiseRiseRise"
– Rise"SiS SiS SiS "
– SiS"UMC UMC UMC "
– UMC"VIA VIA VIA "
– VIA"Vortex86 SoC"
– VortexThe following are known ID strings from virtual machines:
"KVMKVMKVM"
– KVM"Microsoft Hv"
– Microsoft Hyper-V or Windows Virtual PC" lrpepyh vr"
– Parallels (it possibly should be "prl hyperv "
, but it is encoded as " lrpepyh vr"
)"VMwareVMware"
– VMware"XenVMMXenVMM"
– Xen HVM