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

cpuidpp declarations. More...

Go to the source code of this file.

Namespaces

namespace  cpuidpp
 cpuidpp functions.
 

Functions

bool cpuidpp::acpi ()
 Indicates whether Onboard thermal control MSRs for ACPI is supported.
 
bool cpuidpp::adx ()
 Indicates whether Intel ADX (Multi-Precision Add-Carry Instruction Extensions) is supported.
 
bool cpuidpp::aes ()
 Indicates whether the AES instruction set is supported.
 
bool cpuidpp::apic ()
 Indicates whether Onboard Advanced Programmable Interrupt Controller is supported.
 
bool cpuidpp::avx ()
 Indicates whether Advanced Vector Extensions are supported.
 
bool cpuidpp::avx2 ()
 Indicates whether Advanced Vector Extensions 2 are supported.
 
bool cpuidpp::avx512_4fmaps ()
 Indicates whether AVX-512 Multiply Accumulation Single precision is supported.
 
bool cpuidpp::avx512_4vnniw ()
 Indicates whether AVX-512 Neural Network instructions are supported.
 
bool cpuidpp::avx512bw ()
 Indicates whether AVX-512 Byte and Word instructions are supported.
 
bool cpuidpp::avx512cd ()
 Indicates whether AVX-512 Conflict Detection Instructions are supported.
 
bool cpuidpp::avx512dq ()
 Indicates whether AVX-512 Doubleword and Quadword Instructions are supported.
 
bool cpuidpp::avx512er ()
 Indicates whether AVX-512 Exponential and Reciprocal Instructions are supported.
 
bool cpuidpp::avx512f ()
 Indicates whether AVX-512 Foundation is supported.
 
bool cpuidpp::avx512ifma ()
 Indicates whether AVX-512 Integer Fused Multiply-Add Instructions are supported.
 
bool cpuidpp::avx512pf ()
 Indicates whether AVX-512 Prefetch Instructions are supported.
 
bool cpuidpp::avx512vbmi ()
 Indicates whether AVX-512 Vector Bit Manipulation Instructions are supported.
 
bool cpuidpp::avx512vl ()
 Indicates whether AVX-512 Vector Length Extensions are supported.
 
bool cpuidpp::avx512vpopcntdq ()
 Indicates whether AVX-512 Vector Population Count D/Q are supported.
 
bool cpuidpp::bmi1 ()
 Indicates whether the Bit Manipulation Instruction Set 1 is supported.
 
bool cpuidpp::bmi2 ()
 Indicates whether the Bit Manipulation Instruction Set 2 is supported.
 
bool cpuidpp::clflushopt ()
 Indicates whether the CLFLUSHOPT instruction is supported.
 
bool cpuidpp::clfsh ()
 Indicates whether the CLFLUSH instruction is supported.
 
bool cpuidpp::clwb ()
 Indicates whether the CLWB instruction is supported.
 
bool cpuidpp::cmov ()
 Indicates whether the Conditional move and FCMOV instructions are supported.
 
bool cpuidpp::cnxt_id ()
 Indicates whether L1 Context ID is supported.
 
bool cpuidpp::cx16 ()
 Indicates whether the CMPXCHG16B instruction is supported.
 
bool cpuidpp::cx8 ()
 Indicates whether the CMPXCHG8 (compare-and-swap) instruction is supported.
 
bool cpuidpp::dbx ()
 Indicates whether Data breakpoint extensions are supported.
 
bool cpuidpp::dca ()
 Indicates whether Direct cache access for DMA writes is supported.
 
bool cpuidpp::de ()
 Indicates whether debugging extensions (CR4 bit 3) are supported.
 
bool cpuidpp::ds ()
 Indicates whether Debug store: save trace of executed jumps are supported.
 
bool cpuidpp::ds_cpl ()
 Indicates whether CPL qualified debug store is supported.
 
bool cpuidpp::dtes64 ()
 Indicates whether 64-bit debug store (edx bit 21) is supported.
 
bool cpuidpp::eist ()
 Indicates whether Enhanced SpeedStep is supported.
 
bool cpuidpp::erms ()
 Indicates whether Enhanced REP MOVSB/STOSB is supported.
 
bool cpuidpp::extapic ()
 Indicates whether Extended APIC space is supported.
 
bool cpuidpp::f16c ()
 Indicates whether F16C (half-precision) FP is supported.
 
bool cpuidpp::fma ()
 Indicates whether Fused multiply-add (FMA3) is supported.
 
bool cpuidpp::fpu ()
 Indicates whether onboard x87 FPU is supported.
 
bool cpuidpp::fsgsbase ()
 Indicates whether access to base of fs and gs is supported.
 
bool cpuidpp::fxsr ()
 Indicates whether FXSAVE, FXRESTOR instructions, CR4 bit 9 are supported.
 
bool cpuidpp::fxsr_opt ()
 Indicates whether FXSAVE/FXRSTOR optimizations are supported.
 
bool cpuidpp::hle ()
 Indicates whether Transactional Synchronization Extensions are supported.
 
bool cpuidpp::htt ()
 Indicates whether Hyper-threading is supported.
 
bool cpuidpp::hypervisor ()
 Indicates whether we are running on a hypervisor (always 0 on a real CPU, but also with some hypervisors).
 
bool cpuidpp::ia64 ()
 Indicates whether this is a IA64 processor emulating x86.
 
bool cpuidpp::intel_pt ()
 Indicates whether Intel Processor Trace is supported.
 
bool cpuidpp::invpcid ()
 Indicates whether the INVPCID instruction is supported.
 
bool cpuidpp::lm ()
 Indicates whether Long mode is active.
 
bool cpuidpp::mca ()
 Indicates whether the Machine Check Architecture is supported.
 
bool cpuidpp::mce ()
 Indicates whether Machine Check Exception is supported.
 
bool cpuidpp::mmx ()
 Indicates whether MMX instructions are supported.
 
bool cpuidpp::mmxext ()
 Indicates whether Extended MMX is supported.
 
const std::string & cpuidpp::model ()
 Returns the model of the CPU.
 
bool cpuidpp::monitor ()
 Indicates whether MONITOR and MWAIT instructions are supported.
 
bool cpuidpp::movbe ()
 Indicates whether the MOVBE instruction (big-endian) is supported.
 
bool cpuidpp::mp ()
 Indicates whether the system is multiprocessor capable.
 
bool cpuidpp::mpx ()
 Indicates whether Intel MPX (Memory Protection Extensions) is supported.
 
bool cpuidpp::msr ()
 Indicates whether Model-specific registers are supported.
 
bool cpuidpp::mtrr ()
 Indicates whether Memory Type Range Registers are supported.
 
bool cpuidpp::nx ()
 Indicates whether NX bit is supported.
 
bool cpuidpp::ospke ()
 Indicates whether PKU is enabled by OS.
 
bool cpuidpp::oxsave ()
 Indicates whether XSAVE is enabled by OS.
 
bool cpuidpp::pae ()
 Indicates whether Physical Address Extension is supported.
 
bool cpuidpp::pat ()
 Indicates whether the Page Attribute Table is supported.
 
bool cpuidpp::pbe ()
 Indicates whether Pending Break Enable (PBE# pin) wakeup is supported.
 
bool cpuidpp::pcid ()
 Indicates whether Process context identifiers (CR4 bit 17) are supported.
 
bool cpuidpp::pclmulqdq ()
 Indicates whether the PCLMULQDQ instruction is supported.
 
bool cpuidpp::pcommit ()
 Indicates whether PCOMMIT instruction is supported.
 
bool cpuidpp::pcx_l2i ()
 Indicates whether L2I perf counter extensions are supported.
 
bool cpuidpp::pdcm ()
 Indicates whether Perfmon and debug capability is supported.
 
bool cpuidpp::pdpe1gb ()
 Indicates whether Gibibyte pages are supported.
 
bool cpuidpp::perfctr_core ()
 Indicates whether Core performance counter extensions are supported.
 
bool cpuidpp::perfctr_nb ()
 Indicates whether NB performance counter extensions are supported.
 
bool cpuidpp::perftsc ()
 Indicates whether Performance TSC is supported.
 
bool cpuidpp::pge ()
 Indicates whether the Page Global Enable bit in CR4 is supported.
 
bool cpuidpp::pku ()
 Indicates whether Memory Protection Keys for User-mode pages is supported.
 
bool cpuidpp::popcnt ()
 Indicates whether the POPCNT instruction is supported.
 
bool cpuidpp::pqe ()
 Indicates whether Platform Quality of Service Enforcement is supported.
 
bool cpuidpp::pqm ()
 Indicates whether Platform Quality of Service Monitoring is supported.
 
bool cpuidpp::prefetchwt1 ()
 Indicates whether the PREFETCHWT1 instruction is supported.
 
bool cpuidpp::pse ()
 Indicates whether the Page Size Extension is supported.
 
bool cpuidpp::pse36 ()
 Indicates whether the 36-bit page size extension is supported.
 
bool cpuidpp::psn ()
 Indicates whether the Processor Serial Number is supported.
 
bool cpuidpp::rdpid ()
 Indicates whether Read Processor ID is supported.
 
bool cpuidpp::rdrnd ()
 Indicates whether the RDRAND (on-chip random number generator) instruction is supported.
 
bool cpuidpp::rdseed ()
 Indicates whether the RDSEED instruction is supported.
 
bool cpuidpp::rdtscp ()
 Indicates whether the RDTSCP instruction is supported.
 
bool cpuidpp::rtm ()
 Indicates whether Transactional Synchronization Extensions are supported.
 
bool cpuidpp::sdbg ()
 Indicates whether Silicon Debug interface is supported.
 
bool cpuidpp::sep ()
 Indicates whether the SYSENTER and SYSEXIT instructions are supported.
 
bool cpuidpp::sgx ()
 Indicates whether Software Guard Extensions are supported.
 
bool cpuidpp::sgx_lc ()
 Indicates whether SGX Launch Configuration is supported.
 
bool cpuidpp::sha ()
 Indicates whether Intel SHA extensions are supported.
 
bool cpuidpp::smap ()
 Indicates whether Supervisor Mode Access Prevention is supported.
 
bool cpuidpp::smep ()
 Indicates whether Supervisor-Mode Execution Prevention is supported.
 
bool cpuidpp::smx ()
 Indicates whether Safer Mode Extensions are supported.
 
bool cpuidpp::ss ()
 Indicates whether CPU cache supports self-snoop is supported.
 
bool cpuidpp::sse ()
 Indicates whether SSE instructions are supported.
 
bool cpuidpp::sse2 ()
 Indicates whether SSE2 instructions are supported.
 
bool cpuidpp::sse3 ()
 Indicates whether SSE3 instructions are supported.
 
bool cpuidpp::sse4_1 ()
 Indicates whether SSE4.1 instructions are supported.
 
bool cpuidpp::sse4_2 ()
 Indicates whether SSE4.2 instructions are supported.
 
bool cpuidpp::ssse3 ()
 Indicates whether SSSE3 instructions are supported.
 
bool cpuidpp::tm ()
 Indicates whether Thermal monitor automatically limits temperature is supported.
 
bool cpuidpp::tm2 ()
 Indicates whether Thermal Monitor 2 is supported.
 
bool cpuidpp::tsc ()
 Indicates whether the Time Stamp Counter is supported.
 
bool cpuidpp::tsc_deadline ()
 Indicates whether APIC supports one-shot operation using a TSC deadline value.
 
bool cpuidpp::umip ()
 Indicates whether User-mode Instruction Prevention is supported.
 
const std::string & cpuidpp::vendor ()
 Returns the vendor ID.
 
bool cpuidpp::vme ()
 Indicates whether virtual 8086 mode extensions (such as VIF, VIP, PIV) are supported.
 
bool cpuidpp::vmx ()
 Indicates whether Virtual Machine eXtensions are supported.
 
bool cpuidpp::x2apic ()
 Indicates whether x2APIC is supported.
 
bool cpuidpp::xsave ()
 Indicates whether XSAVE, XRESTOR, XSETBV, XGETBV are supported.
 
bool cpuidpp::xtpr ()
 Indicates whether sending task priority messages can be disabled.
 
AMD feature flags

CPU features specific to AMD processors.

bool cpuidpp::abm ()
 Indicates whether Advanced bit manipulation (LZCNT and POPCNT) is supported.
 
bool cpuidpp::amd_3dnow ()
 Indicates whether 3DNow! is supported.
 
bool cpuidpp::amd_3dnowext ()
 Indicates whether Extended 3DNow! is supported.
 
bool cpuidpp::amd_3dnowprefetch ()
 Indicates whether the PREFETCH and PREFETCHW instructions are supported.
 
bool cpuidpp::cmp_legacy ()
 Indicates whether Hyperthreading is not valid.
 
bool cpuidpp::cr8_legacy ()
 Indicates whether CR8 in 32-bit mode is supported.
 
bool cpuidpp::fma4 ()
 Indicates whether 4 operands fused multiply-add is supported.
 
bool cpuidpp::ibs ()
 Indicates whether Instruction Based Sampling is supported.
 
bool cpuidpp::lahf_lm ()
 Indicates whether LAHF/SAHF in long mode is supported.
 
bool cpuidpp::lwp ()
 Indicates whether Light Weight Profiling is supported.
 
bool cpuidpp::misalignsse ()
 Indicates whether the Misaligned SSE mode is supported.
 
bool cpuidpp::nodeid_msr ()
 Indicates whether NodeID MSR is supported.
 
bool cpuidpp::osvw ()
 Indicates whether OS Visible Workaround is active.
 
bool cpuidpp::skinit ()
 Indicates whether SKINIT/STGI instructions are supported.
 
bool cpuidpp::sse4a ()
 Indicates whether SSE4a instructions are supported.
 
bool cpuidpp::svm ()
 Secure Virtual Machine.
 
bool cpuidpp::syscall ()
 Indicates whether SYSCALL and SYSRET instructions are supported.
 
bool cpuidpp::tbm ()
 Indicates whether Trailing Bit Manipulation is supported.
 
bool cpuidpp::tce ()
 Indicates whether Translation Cache Extension is supported.
 
bool cpuidpp::topoext ()
 Indicates whether Topology Extensions are supported.
 
bool cpuidpp::wdt ()
 Indicates whether the Watchdog timer is supported.
 
bool cpuidpp::xop ()
 Indicates whether XOP instruction set is supported.
 

Detailed Description

cpuidpp declarations.