cpuidpp 1.0.0
C++11 library for identifying CPU features
Loading...
Searching...
No Matches
cpuidpp Namespace Reference

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.
 

Detailed Description

cpuidpp functions.

Function Documentation

◆ vendor()

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" – Vortex

The 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