libcpuid
libcpuid.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Veselin Georgiev,
3  * anrieffNOSPAM @ mgail_DOT.com (convert to gmail)
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26 #ifndef __LIBCPUID_H__
27 #define __LIBCPUID_H__
116 /* Include C99 booleans: */
117 #include <stdbool.h>
118 
119 /* Include some integer type specifications: */
120 #include "libcpuid_types.h"
121 
122 /* Some limits and other constants */
123 #include "libcpuid_constants.h"
124 
125 #ifndef LIBCPUID_DEPRECATED
126 # if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */
127 # define LIBCPUID_DEPRECATED(message) [[deprecated(message)]]
128 # elif (defined(GNUC) && (GNUC > 4 || (GNUC == 4 && GNUC_MINOR >= 5))) || defined(__clang__)
129 # define LIBCPUID_DEPRECATED(message) __attribute__((deprecated(message)))
130 # elif defined(__GNUC__) && (__GNUC__ >= 3)
131 # define LIBCPUID_DEPRECATED(message) __attribute__((deprecated))
132 # elif defined(_MSC_VER)
133 # define LIBCPUID_DEPRECATED(message) __declspec(deprecated(message))
134 # else
135 # pragma message("WARNING: You need to implement LIBCPUID_DEPRECATED for this compiler")
136 # define LIBCPUID_DEPRECATED(message)
137 # endif
138 #endif /* LIBCPUID_DEPRECATED */
139 
140 #ifdef __cplusplus
141 extern "C" {
142 #endif
143 
147 typedef enum {
179  VENDOR_UNKNOWN = -1,
180 } cpu_vendor_t;
181 #define NUM_CPU_VENDORS NUM_CPU_VENDORS
182 
186 typedef enum {
191  ARCHITECTURE_UNKNOWN = -1,
193 #define NUM_CPU_ARCHITECTURES NUM_CPU_ARCHITECTURES
194 
198 typedef enum {
199  /* x86: https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels */
209  /* ARM: https://en.wikipedia.org/wiki/ARM_architecture_family#Cores */
245  FEATURE_LEVEL_UNKNOWN = -1,
247 #define NUM_FEATURE_LEVELS NUM_FEATURE_LEVELS
248 
252 typedef enum {
260 } cpu_purpose_t;
261 #define NUM_CPU_PURPOSES NUM_CPU_PURPOSES
262 
266 typedef enum {
277  HYPERVISOR_UNKNOWN = -1,
279 #define NUM_HYPERVISOR_VENDORS NUM_HYPERVISOR_VENDORS
280 
290  uint32_t basic_cpuid[MAX_CPUID_LEVEL][NUM_REGS];
291 
293  uint32_t ext_cpuid[MAX_EXT_CPUID_LEVEL][NUM_REGS];
294 
298  uint32_t intel_fn4[MAX_INTELFN4_LEVEL][NUM_REGS];
299 
303  uint32_t intel_fn11[MAX_INTELFN11_LEVEL][NUM_REGS];
304 
308  uint32_t intel_fn12h[MAX_INTELFN12H_LEVEL][NUM_REGS];
309 
314  uint32_t intel_fn14h[MAX_INTELFN14H_LEVEL][NUM_REGS];
315 
320  uint32_t amd_fn8000001dh[MAX_AMDFN8000001DH_LEVEL][NUM_REGS];
321 
326  uint32_t amd_fn80000026h[MAX_AMDFN80000026H_LEVEL][NUM_REGS];
327 
330  uint64_t arm_midr;
331 
334  uint64_t arm_mpidr;
335 
338  uint64_t arm_revidr;
339 
342  uint32_t arm_id_afr[MAX_ARM_ID_AFR_REGS];
343 
346  uint32_t arm_id_dfr[MAX_ARM_ID_DFR_REGS];
347 
350  uint32_t arm_id_isar[MAX_ARM_ID_ISAR_REGS];
351 
354  uint32_t arm_id_mmfr[MAX_ARM_ID_MMFR_REGS];
355 
358  uint32_t arm_id_pfr[MAX_ARM_ID_PFR_REGS];
359 
362  uint64_t arm_id_aa64afr[MAX_ARM_ID_AA64AFR_REGS];
363 
366  uint64_t arm_id_aa64dfr[MAX_ARM_ID_AA64DFR_REGS];
367 
370  uint64_t arm_id_aa64isar[MAX_ARM_ID_AA64ISAR_REGS];
371 
374  uint64_t arm_id_aa64mmfr[MAX_ARM_ID_AA64MMFR_REGS];
375 
378  uint64_t arm_id_aa64pfr[MAX_ARM_ID_AA64PFR_REGS];
379 
382  uint64_t arm_id_aa64smfr[MAX_ARM_ID_AA64SMFR_REGS];
383 
386  uint64_t arm_id_aa64zfr[MAX_ARM_ID_AA64ZFR_REGS];
387 };
388 
404 
406  logical_cpu_t num_raw;
407 
410 };
411 
435 struct cpu_sgx_t {
437  uint32_t present;
438 
443 
448 
453  uint8_t flags[SGX_FLAGS_MAX];
454 
459 
463  uint32_t misc_select;
464 
468  uint64_t secs_attributes;
469 
473  uint64_t secs_xfrm;
474 };
475 
481 struct x86_id_t {
483  int32_t family;
484 
486  int32_t model;
487 
489  int32_t stepping;
490 
492  int32_t ext_family;
493 
498  int32_t ext_model;
499 
501  int32_t sse_size;
502 
504  struct cpu_sgx_t sgx;
505 };
506 
512 struct arm_id_t {
514  uint8_t implementer;
515 
517  uint8_t variant;
518 
520  uint16_t part_num;
521 
523  uint8_t revision;
524 };
525 
529 struct cpu_id_t {
532 
539 
541  char vendor_str[VENDOR_STR_MAX];
542 
544  char brand_str[BRAND_STR_MAX];
545 
548 
554  uint8_t flags[CPU_FLAGS_MAX];
555 
556 #ifndef LIBCPUID_DISABLE_DEPRECATED
561  LIBCPUID_DEPRECATED("replace with '.x86.family' in your code to fix the warning")
562  int32_t family;
563 
568  LIBCPUID_DEPRECATED("replace with '.x86.model' in your code to fix the warning")
569  int32_t model;
570 
575  LIBCPUID_DEPRECATED("replace with '.x86.stepping' in your code to fix the warning")
576  int32_t stepping;
577 
582  LIBCPUID_DEPRECATED("replace with '.x86.ext_family' in your code to fix the warning")
583  int32_t ext_family;
584 
590  LIBCPUID_DEPRECATED("replace with '.x86.ext_model' in your code to fix the warning")
591  int32_t ext_model;
592 #endif /* LIBCPUID_DISABLE_DEPRECATED */
593 
598  union {
599  struct x86_id_t x86;
600  struct arm_id_t arm;
601  };
602 
604  int32_t num_cores;
605 
612 
628 
633  int32_t l1_data_cache;
634 
642 
647  int32_t l2_cache;
648 
650  int32_t l3_cache;
651 
653  int32_t l4_cache;
654 
655 #ifndef LIBCPUID_DISABLE_DEPRECATED
659  LIBCPUID_DEPRECATED("replace with 'l1_data_assoc' in your code to fix the warning")
660  int32_t l1_assoc;
661 #endif /* LIBCPUID_DISABLE_DEPRECATED */
662 
664  int32_t l1_data_assoc;
665 
668 
670  int32_t l2_assoc;
671 
673  int32_t l3_assoc;
674 
676  int32_t l4_assoc;
677 
678 #ifndef LIBCPUID_DISABLE_DEPRECATED
682  LIBCPUID_DEPRECATED("replace with 'l1_data_cacheline' in your code to fix the warning")
683  int32_t l1_cacheline;
684 #endif /* LIBCPUID_DISABLE_DEPRECATED */
685 
688 
691 
693  int32_t l2_cacheline;
694 
696  int32_t l3_cacheline;
697 
699  int32_t l4_cacheline;
700 
703 
706 
708  int32_t l2_instances;
709 
711  int32_t l3_instances;
712 
714  int32_t l4_instances;
715 
730  char cpu_codename[CODENAME_STR_MAX];
731 
736  LIBCPUID_DEPRECATED("replace with '.x86.sse_size' in your code to fix the warning")
737  int32_t sse_size;
738 
744  uint8_t detection_hints[CPU_HINTS_MAX];
745 
750  LIBCPUID_DEPRECATED("replace with '.x86.sgx' in your code to fix the warning")
751  struct cpu_sgx_t sgx;
752 
755 
758 };
759 
763 struct system_id_t {
765  uint8_t num_cpu_types;
766 
769 
772 
775 
778 
781 
784 };
785 
806 typedef enum {
1143  /* termination: */
1144  NUM_CPU_FEATURES,
1145 } cpu_feature_t;
1146 
1152 typedef enum {
1154  /* termination */
1155  NUM_CPU_HINTS,
1156 } cpu_hint_t;
1157 
1180 typedef enum {
1184  /* termination: */
1185  NUM_SGX_FEATURES,
1187 
1191 typedef enum {
1192  ERR_OK = 0,
1195  ERR_NO_MEM = -3,
1196  ERR_OPEN = -4,
1197  ERR_BADFMT = -5,
1203  ERR_EXTRACT = -11,
1204  ERR_HANDLE = -12,
1205  ERR_INVMSR = -13,
1206  ERR_INVCNB = -14,
1210  ERR_IOCTL = -18,
1211  ERR_REQUEST = -19,
1212 } cpu_error_t;
1213 
1218 struct cpu_mark_t {
1219  uint64_t tsc;
1220  uint64_t sys_clock;
1221 };
1222 
1234 
1240 int cpuid_present(void);
1241 
1249 void cpu_exec_cpuid(uint32_t eax, uint32_t* regs);
1250 
1259 void cpu_exec_cpuid_ext(uint32_t* regs);
1260 
1269 
1280 int cpuid_get_raw_data_core(struct cpu_raw_data_t* data, logical_cpu_t logical_cpu);
1281 
1292 
1310 int cpuid_serialize_raw_data(struct cpu_raw_data_t* data, const char* filename);
1311 
1329 int cpuid_serialize_all_raw_data(struct cpu_raw_data_array_t* data, const char* filename);
1330 
1343 int cpuid_deserialize_raw_data(struct cpu_raw_data_t* data, const char* filename);
1344 
1359 int cpuid_deserialize_all_raw_data(struct cpu_raw_data_array_t* data, const char* filename);
1360 
1384 int cpu_identify(struct cpu_raw_data_t* raw, struct cpu_id_t* data);
1385 
1400 int cpu_identify_all(struct cpu_raw_data_array_t* raw_array, struct system_id_t* system);
1401 
1415 
1422 
1429 
1436 
1444 char* affinity_mask_str_r(cpu_affinity_mask_t* affinity_mask, char* buffer, uint32_t buffer_len);
1445 
1453 
1461 const char* cpu_feature_str(cpu_feature_t feature);
1462 
1471 const char* cpuid_error(void);
1472 
1497 void cpu_rdtsc(uint64_t* result);
1498 
1511 void cpu_tsc_mark(struct cpu_mark_t* mark);
1512 
1536 void cpu_tsc_unmark(struct cpu_mark_t* mark);
1537 
1554 int cpu_clock_by_mark(struct cpu_mark_t* mark);
1555 
1571 
1614 int cpu_clock_measure(int millis, int quad_check);
1615 
1655 int cpu_clock_by_ic(int millis, int runs);
1656 
1677 
1688 int cpu_clock(void);
1689 
1690 
1698 struct cpu_epc_t {
1699  uint64_t start_addr;
1700  uint64_t length;
1701 };
1702 
1714 struct cpu_epc_t cpuid_get_epc(int index, const struct cpu_raw_data_t* raw);
1715 
1721 const char* cpuid_lib_version(void);
1722 
1723 typedef void (*libcpuid_warn_fn_t) (const char *msg);
1737 libcpuid_warn_fn_t cpuid_set_warn_function(libcpuid_warn_fn_t warn_fun);
1738 
1751 
1752 
1760 
1778 
1782 struct cpu_list_t {
1786  char **names;
1787 };
1788 
1808 
1817 void cpuid_free_cpu_list(struct cpu_list_t* list);
1818 
1828 
1837 void cpuid_free_system_id(struct system_id_t* system);
1838 
1839 struct msr_driver_t;
1851 struct msr_driver_t* cpu_msr_driver_open(void);
1852 
1866 struct msr_driver_t* cpu_msr_driver_open_core(unsigned core_num);
1867 
1892 int cpu_rdmsr(struct msr_driver_t* handle, uint32_t msr_index, uint64_t* result);
1893 
1894 
1895 typedef enum {
1896  INFO_MPERF,
1899  INFO_APERF,
1910  INFO_THROTTLING,
1912  INFO_VOLTAGE,
1915  INFO_BUS_CLOCK,
1919 
1934 int cpu_rdmsr_range(struct msr_driver_t* handle, uint32_t msr_index, uint8_t highbit,
1935  uint8_t lowbit, uint64_t* result);
1936 
1950 int cpu_msrinfo(struct msr_driver_t* handle, cpu_msrinfo_request_t which);
1951 #define CPU_INVALID_VALUE 0x3fffffff
1952 
1970 int msr_serialize_raw_data(struct msr_driver_t* handle, const char* filename);
1971 
1984 int cpu_msr_driver_close(struct msr_driver_t* handle);
1985 
1986 #ifdef __cplusplus
1987 } /* extern "C" */
1988 #endif
1989 
1990 
1993 #endif /* __LIBCPUID_H__ */
char * affinity_mask_str(cpu_affinity_mask_t *affinity_mask)
Returns textual representation of a CPU affinity mask.
const char * cpuid_lib_version(void)
Returns the libcpuid version.
int cpuid_get_raw_data_core(struct cpu_raw_data_t *data, logical_cpu_t logical_cpu)
Obtains the raw CPUID data from the specified CPU.
void cpu_rdtsc(uint64_t *result)
Executes RDTSC.
cpu_purpose_t
CPU purpose.
Definition: libcpuid.h:252
cpu_msrinfo_request_t
Definition: libcpuid.h:1895
int cpu_rdmsr(struct msr_driver_t *handle, uint32_t msr_index, uint64_t *result)
Reads a Model-Specific Register (MSR)
const char * cpu_purpose_str(cpu_purpose_t purpose)
Returns the short textual representation of a CPU purpose.
int cpuid_get_total_cpus(void)
Returns the total number of logical CPU threads (even if CPUID is not present).
void cpuid_get_cpu_list(cpu_vendor_t vendor, struct cpu_list_t *list)
Gets a list of all known CPU names from a specific vendor.
const char * cpu_feature_str(cpu_feature_t feature)
Returns the short textual representation of a CPU flag.
void cpu_tsc_mark(struct cpu_mark_t *mark)
Store TSC and timing info.
struct msr_driver_t * cpu_msr_driver_open_core(unsigned core_num)
Similar to cpu_msr_driver_open, but accept one parameter.
int cpuid_present(void)
Checks if the CPUID instruction is supported.
void cpuid_free_raw_data_array(struct cpu_raw_data_array_t *raw_array)
Frees a raw array.
cpu_architecture_t
CPU architecture.
Definition: libcpuid.h:186
int cpuid_deserialize_all_raw_data(struct cpu_raw_data_array_t *data, const char *filename)
Reads all raw CPUID data from file.
const char * cpu_architecture_str(cpu_architecture_t architecture)
Returns the short textual representation of a CPU architecture.
void cpu_exec_cpuid(uint32_t eax, uint32_t *regs)
Executes the CPUID instruction.
int cpuid_serialize_raw_data(struct cpu_raw_data_t *data, const char *filename)
Writes the raw CPUID data to a text file.
cpu_feature_t
CPU feature identifiers.
Definition: libcpuid.h:806
int cpu_clock_by_ic(int millis, int runs)
Measure the CPU clock frequency using instruction-counting.
int cpu_clock_by_tsc(struct cpu_raw_data_t *raw)
Measure the CPU clock frequency using TSC frequency from CPUID.
int cpu_clock_by_mark(struct cpu_mark_t *mark)
Calculates the CPU clock.
int cpuid_serialize_all_raw_data(struct cpu_raw_data_array_t *data, const char *filename)
Writes all the raw CPUID data to a text file.
char * affinity_mask_str_r(cpu_affinity_mask_t *affinity_mask, char *buffer, uint32_t buffer_len)
Returns textual representation of a CPU affinity mask (thread-safe)
int cpu_clock_measure(int millis, int quad_check)
Measure the CPU clock frequency.
cpu_vendor_t cpuid_get_vendor(void)
Obtains the CPU vendor from CPUID from the current CPU.
void cpuid_free_cpu_list(struct cpu_list_t *list)
Frees a CPU list.
void cpu_exec_cpuid_ext(uint32_t *regs)
Executes the CPUID instruction with the given input registers.
int cpuid_get_all_raw_data(struct cpu_raw_data_array_t *data)
Obtains the raw CPUID data from all CPUs.
void cpuid_free_system_id(struct system_id_t *system)
Frees a system ID type.
int cpu_clock(void)
Get the CPU clock frequency (all-in-one method)
void cpuid_set_verbosiness_level(int level)
Sets the verbosiness level.
hypervisor_vendor_t cpuid_get_hypervisor(struct cpu_raw_data_t *raw, struct cpu_id_t *data)
Obtains the hypervisor vendor from CPUID from the current CPU.
int cpu_identify(struct cpu_raw_data_t *raw, struct cpu_id_t *data)
Identifies the CPU.
libcpuid_warn_fn_t cpuid_set_warn_function(libcpuid_warn_fn_t warn_fun)
Sets the warning print function.
int msr_serialize_raw_data(struct msr_driver_t *handle, const char *filename)
Writes the raw MSR data to a text file.
const char * cpuid_error(void)
Returns textual description of the last error.
cpu_error_t
Describes common library error codes.
Definition: libcpuid.h:1191
cpu_sgx_feature_t
SGX features flags.
Definition: libcpuid.h:1180
struct msr_driver_t * cpu_msr_driver_open(void)
Starts/opens a driver, needed to read MSRs (Model Specific Registers)
cpu_feature_level_t
CPU feature level.
Definition: libcpuid.h:198
int cpu_msrinfo(struct msr_driver_t *handle, cpu_msrinfo_request_t which)
Reads extended CPU information from Model-Specific Registers.
int cpuid_get_raw_data(struct cpu_raw_data_t *data)
Obtains the raw CPUID data from the current CPU.
int cpu_request_core_type(cpu_purpose_t purpose, struct cpu_raw_data_array_t *raw_array, struct cpu_id_t *data)
Identifies a given CPU type.
int cpuid_deserialize_raw_data(struct cpu_raw_data_t *data, const char *filename)
Reads raw CPUID data from file.
struct cpu_epc_t cpuid_get_epc(int index, const struct cpu_raw_data_t *raw)
Fetches information about an EPC (Enclave Page Cache) area.
cpu_hint_t
CPU detection hints identifiers.
Definition: libcpuid.h:1152
int cpu_clock_by_os(void)
Returns the CPU clock, as reported by the OS.
int cpu_rdmsr_range(struct msr_driver_t *handle, uint32_t msr_index, uint8_t highbit, uint8_t lowbit, uint64_t *result)
Similar to cpu_rdmsr, but extract a range of bits.
void cpu_tsc_unmark(struct cpu_mark_t *mark)
Calculate TSC and timing difference.
const char * cpu_feature_level_str(cpu_feature_level_t level)
Returns the short textual representation of a CPU feature level.
cpu_vendor_t
CPU vendor, as guessed from the Vendor String.
Definition: libcpuid.h:147
int cpu_msr_driver_close(struct msr_driver_t *handle)
Closes an open MSR driver.
int cpu_identify_all(struct cpu_raw_data_array_t *raw_array, struct system_id_t *system)
Identifies all the CPUs.
hypervisor_vendor_t
Hypervisor vendor, as guessed from the CPU_FEATURE_HYPERVISOR flag.
Definition: libcpuid.h:266
@ PURPOSE_GENERAL
Definition: libcpuid.h:253
@ PURPOSE_PERFORMANCE
Definition: libcpuid.h:254
@ NUM_CPU_PURPOSES
Definition: libcpuid.h:259
@ PURPOSE_U_PERFORMANCE
Definition: libcpuid.h:257
@ PURPOSE_LP_EFFICIENCY
Definition: libcpuid.h:256
@ PURPOSE_EFFICIENCY
Definition: libcpuid.h:255
@ INFO_BCLK
Definition: libcpuid.h:1914
@ INFO_MIN_MULTIPLIER
Definition: libcpuid.h:1902
@ INFO_MPERF
Definition: libcpuid.h:1896
@ INFO_THROTTLING
Definition: libcpuid.h:1910
@ INFO_VOLTAGE
Definition: libcpuid.h:1912
@ INFO_CUR_MULTIPLIER
Definition: libcpuid.h:1904
@ INFO_APERF
Definition: libcpuid.h:1899
@ INFO_BUS_CLOCK
Definition: libcpuid.h:1915
@ INFO_TEMPERATURE
Definition: libcpuid.h:1909
@ INFO_MAX_MULTIPLIER
Definition: libcpuid.h:1907
@ ARCHITECTURE_ARM
Definition: libcpuid.h:188
@ ARCHITECTURE_X86
Definition: libcpuid.h:187
@ NUM_CPU_ARCHITECTURES
Definition: libcpuid.h:190
@ CPU_FEATURE_SPECRES
Definition: libcpuid.h:1035
@ CPU_FEATURE_DPB
Definition: libcpuid.h:964
@ CPU_FEATURE_F32MM
Definition: libcpuid.h:966
@ CPU_FEATURE_TLBIOS
Definition: libcpuid.h:1015
@ CPU_FEATURE_DIVIDE
Definition: libcpuid.h:932
@ CPU_FEATURE_PAN3
Definition: libcpuid.h:1059
@ CPU_FEATURE_UAO
Definition: libcpuid.h:984
@ CPU_FEATURE_BTI
Definition: libcpuid.h:1020
@ CPU_FEATURE_JSCVT
Definition: libcpuid.h:992
@ CPU_FEATURE_SME2
Definition: libcpuid.h:1126
@ CPU_FEATURE_RNG
Definition: libcpuid.h:1032
@ CPU_FEATURE_ADERR
Definition: libcpuid.h:1075
@ CPU_FEATURE_PAUTH
Definition: libcpuid.h:997
@ CPU_FEATURE_AMUV1
Definition: libcpuid.h:999
@ CPU_FEATURE_MTPMU
Definition: libcpuid.h:1047
@ CPU_FEATURE_TME
Definition: libcpuid.h:1116
@ CPU_FEATURE_LPAE
Definition: libcpuid.h:933
@ CPU_FEATURE_LPA
Definition: libcpuid.h:972
@ CPU_FEATURE_SSBS
Definition: libcpuid.h:1036
@ CPU_FEATURE_SVE_SHA3
Definition: libcpuid.h:1114
@ CPU_FEATURE_PAN
Definition: libcpuid.h:957
@ CPU_FEATURE_ECV
Definition: libcpuid.h:1042
@ CPU_FEATURE_SSE5
Definition: libcpuid.h:878
@ CPU_FEATURE_MCE
Definition: libcpuid.h:814
@ CPU_FEATURE_AVX2
Definition: libcpuid.h:901
@ CPU_FEATURE_SPEV1P2
Definition: libcpuid.h:1062
@ CPU_FEATURE_MSR
Definition: libcpuid.h:812
@ CPU_FEATURE_SME_I16I64
Definition: libcpuid.h:1123
@ CPU_FEATURE_SM3
Definition: libcpuid.h:979
@ CPU_FEATURE_APIC
Definition: libcpuid.h:816
@ CPU_FEATURE_SPE
Definition: libcpuid.h:981
@ CPU_FEATURE_MONITOR
Definition: libcpuid.h:840
@ CPU_FEATURE_CLRBHB
Definition: libcpuid.h:1079
@ CPU_FEATURE_RDRAND
Definition: libcpuid.h:895
@ CPU_FEATURE_CONSTPACFIELD
Definition: libcpuid.h:987
@ CPU_FEATURE_PNI
Definition: libcpuid.h:837
@ CPU_FEATURE_SKINIT
Definition: libcpuid.h:879
@ CPU_FEATURE_ECBHB
Definition: libcpuid.h:1083
@ CPU_FEATURE_FID
Definition: libcpuid.h:882
@ CPU_FEATURE_DEBUGV6
Definition: libcpuid.h:926
@ CPU_FEATURE_PMUV1
Definition: libcpuid.h:934
@ CPU_FEATURE_SSE4_2
Definition: libcpuid.h:853
@ CPU_FEATURE_SWAP
Definition: libcpuid.h:921
@ CPU_FEATURE_VME
Definition: libcpuid.h:808
@ CPU_FEATURE_STC
Definition: libcpuid.h:886
@ CPU_FEATURE_MTE
Definition: libcpuid.h:1029
@ CPU_FEATURE_SGX
Definition: libcpuid.h:914
@ CPU_FEATURE_RTM
Definition: libcpuid.h:905
@ CPU_FEATURE_TTP
Definition: libcpuid.h:884
@ CPU_FEATURE_IDST
Definition: libcpuid.h:1007
@ CPU_FEATURE_AFP
Definition: libcpuid.h:1050
@ CPU_FEATURE_CSV2_2
Definition: libcpuid.h:941
@ CPU_FEATURE_VHE
Definition: libcpuid.h:960
@ CPU_FEATURE_FHM
Definition: libcpuid.h:1005
@ CPU_FEATURE_HWPSTATE
Definition: libcpuid.h:888
@ CPU_FEATURE_SHA512
Definition: libcpuid.h:978
@ CPU_FEATURE_PMUV3_SS
Definition: libcpuid.h:1096
@ CPU_FEATURE_AIE
Definition: libcpuid.h:1076
@ CPU_FEATURE_LSE128
Definition: libcpuid.h:1133
@ CPU_FEATURE_SEP
Definition: libcpuid.h:818
@ CPU_FEATURE_AVX512BW
Definition: libcpuid.h:912
@ CPU_FEATURE_DPB2
Definition: libcpuid.h:1023
@ CPU_FEATURE_TTST
Definition: libcpuid.h:1019
@ CPU_FEATURE_XS
Definition: libcpuid.h:1064
@ CPU_FEATURE_VMX
Definition: libcpuid.h:842
@ CPU_FEATURE_E0PD
Definition: libcpuid.h:1024
@ CPU_FEATURE_AVX512PF
Definition: libcpuid.h:908
@ CPU_FEATURE_SME_F64F64
Definition: libcpuid.h:1121
@ CPU_FEATURE_RASV2
Definition: libcpuid.h:1099
@ CPU_FEATURE_AA32I8MM
Definition: libcpuid.h:963
@ CPU_FEATURE_SHA256
Definition: libcpuid.h:951
@ CPU_FEATURE_RPRFM
Definition: libcpuid.h:1100
@ CPU_FEATURE_CLFLUSH
Definition: libcpuid.h:825
@ CPU_FEATURE_SB
Definition: libcpuid.h:1034
@ CPU_FEATURE_SYSREG128
Definition: libcpuid.h:1141
@ CPU_FEATURE_ACPI
Definition: libcpuid.h:827
@ CPU_FEATURE_PAUTH2
Definition: libcpuid.h:1048
@ CPU_FEATURE_MTE_CANONICAL_TAGS
Definition: libcpuid.h:1089
@ CPU_FEATURE_TRBE
Definition: libcpuid.h:1117
@ CPU_FEATURE_EBF16
Definition: libcpuid.h:1051
@ CPU_FEATURE_HCX
Definition: libcpuid.h:1052
@ CPU_FEATURE_PMUV3
Definition: libcpuid.h:949
@ CPU_FEATURE_FCMA
Definition: libcpuid.h:989
@ CPU_FEATURE_RPRES
Definition: libcpuid.h:1061
@ CPU_FEATURE_NTLBPA
Definition: libcpuid.h:952
@ CPU_FEATURE_SVE
Definition: libcpuid.h:982
@ CPU_FEATURE_FLAGM2
Definition: libcpuid.h:1028
@ CPU_FEATURE_LRCPC
Definition: libcpuid.h:993
@ CPU_FEATURE_TM
Definition: libcpuid.h:834
@ CPU_FEATURE_SSE2
Definition: libcpuid.h:831
@ CPU_FEATURE_LRCPC3
Definition: libcpuid.h:1086
@ CPU_FEATURE_ETS2
Definition: libcpuid.h:944
@ CPU_FEATURE_FGT2
Definition: libcpuid.h:1084
@ CPU_FEATURE_FMA4
Definition: libcpuid.h:892
@ CPU_FEATURE_MTE_TAGGED_FAR
Definition: libcpuid.h:1093
@ CPU_FEATURE_XNX
Definition: libcpuid.h:985
@ CPU_FEATURE_SVE_SM4
Definition: libcpuid.h:1115
@ CPU_FEATURE_SEL2
Definition: libcpuid.h:1014
@ CPU_FEATURE_CSV2_1P1
Definition: libcpuid.h:939
@ CPU_FEATURE_FPU
Definition: libcpuid.h:807
@ CPU_FEATURE_SSBS2
Definition: libcpuid.h:1037
@ CPU_FEATURE_LSMAOC
Definition: libcpuid.h:973
@ CPU_FEATURE_CX16
Definition: libcpuid.h:848
@ CPU_FEATURE_100MHZSTEPS
Definition: libcpuid.h:887
@ CPU_FEATURE_MTE_STORE_ONLY
Definition: libcpuid.h:1092
@ CPU_FEATURE_ADVMULTU
Definition: libcpuid.h:923
@ CPU_FEATURE_TSC
Definition: libcpuid.h:811
@ CPU_FEATURE_XSAVE
Definition: libcpuid.h:859
@ CPU_FEATURE_PACIMP
Definition: libcpuid.h:994
@ CPU_FEATURE_AMUV1P1
Definition: libcpuid.h:1039
@ CPU_FEATURE_DEBUGV8P2
Definition: libcpuid.h:965
@ CPU_FEATURE_NX
Definition: libcpuid.h:865
@ CPU_FEATURE_SYSINSTR128
Definition: libcpuid.h:1140
@ CPU_FEATURE_HBC
Definition: libcpuid.h:1067
@ CPU_FEATURE_SME_F16F16
Definition: libcpuid.h:1137
@ CPU_FEATURE_DGH
Definition: libcpuid.h:1041
@ CPU_FEATURE_SVM
Definition: libcpuid.h:871
@ CPU_FEATURE_PCLMUL
Definition: libcpuid.h:838
@ CPU_FEATURE_PAN2
Definition: libcpuid.h:975
@ CPU_FEATURE_CMP_LEGACY
Definition: libcpuid.h:870
@ CPU_FEATURE_TLBIRANGE
Definition: libcpuid.h:1016
@ CPU_FEATURE_SPECRES2
Definition: libcpuid.h:1105
@ CPU_FEATURE_OSXSAVE
Definition: libcpuid.h:860
@ CPU_FEATURE_PMUV3P1
Definition: libcpuid.h:958
@ CPU_FEATURE_PMUV3P8
Definition: libcpuid.h:1070
@ CPU_FEATURE_HPMN0
Definition: libcpuid.h:1044
@ CPU_FEATURE_CID
Definition: libcpuid.h:847
@ CPU_FEATURE_PSE
Definition: libcpuid.h:810
@ CPU_FEATURE_XOP
Definition: libcpuid.h:890
@ CPU_FEATURE_SVE_BITPERM
Definition: libcpuid.h:1112
@ CPU_FEATURE_RAS
Definition: libcpuid.h:976
@ CPU_FEATURE_TWED
Definition: libcpuid.h:1049
@ CPU_FEATURE_I8MM
Definition: libcpuid.h:970
@ CPU_FEATURE_FPAC
Definition: libcpuid.h:990
@ CPU_FEATURE_PSE36
Definition: libcpuid.h:823
@ CPU_FEATURE_FGT
Definition: libcpuid.h:1043
@ CPU_FEATURE_MTE_ASYNC
Definition: libcpuid.h:1088
@ CPU_FEATURE_AVX512ER
Definition: libcpuid.h:909
@ CPU_FEATURE_ITE
Definition: libcpuid.h:1132
@ CPU_FEATURE_OSVW
Definition: libcpuid.h:876
@ CPU_FEATURE_DOUBLELOCK
Definition: libcpuid.h:943
@ CPU_FEATURE_3DNOWEXT
Definition: libcpuid.h:864
@ CPU_FEATURE_SYSCALL
Definition: libcpuid.h:854
@ CPU_FEATURE_SHA_NI
Definition: libcpuid.h:911
@ CPU_FEATURE_SVE_AES
Definition: libcpuid.h:1111
@ CPU_FEATURE_ABM
Definition: libcpuid.h:872
@ CPU_FEATURE_TS
Definition: libcpuid.h:881
@ CPU_FEATURE_LRCPC2
Definition: libcpuid.h:1008
@ CPU_FEATURE_HT
Definition: libcpuid.h:833
@ CPU_FEATURE_HPDS2
Definition: libcpuid.h:969
@ CPU_FEATURE_MIXEDEND
Definition: libcpuid.h:946
@ CPU_FEATURE_PMUV3_ICNTR
Definition: libcpuid.h:1095
@ CPU_FEATURE_X2APIC
Definition: libcpuid.h:896
@ CPU_FEATURE_TIDCP1
Definition: libcpuid.h:1074
@ CPU_FEATURE_SM4
Definition: libcpuid.h:980
@ CPU_FEATURE_BRBEV1P1
Definition: libcpuid.h:1124
@ CPU_FEATURE_SPMU
Definition: libcpuid.h:1108
@ CPU_FEATURE_S1POE
Definition: libcpuid.h:1102
@ CPU_FEATURE_MTE_NO_ADDRESS_TAGS
Definition: libcpuid.h:1090
@ CPU_FEATURE_DEBUGV7P1
Definition: libcpuid.h:930
@ CPU_FEATURE_FPACCOMBINE
Definition: libcpuid.h:991
@ CPU_FEATURE_CSV2_1P2
Definition: libcpuid.h:940
@ CPU_FEATURE_AA32HPD
Definition: libcpuid.h:962
@ CPU_FEATURE_TRF
Definition: libcpuid.h:1017
@ CPU_FEATURE_CCIDX
Definition: libcpuid.h:986
@ CPU_FEATURE_ADVSIMD
Definition: libcpuid.h:937
@ CPU_FEATURE_ADX
Definition: libcpuid.h:916
@ CPU_FEATURE_HPDS
Definition: libcpuid.h:954
@ CPU_FEATURE_SVE2
Definition: libcpuid.h:1110
@ CPU_FEATURE_DEBUGV8P8
Definition: libcpuid.h:1066
@ CPU_FEATURE_EST
Definition: libcpuid.h:844
@ CPU_FEATURE_LVA
Definition: libcpuid.h:974
@ CPU_FEATURE_FP
Definition: libcpuid.h:945
@ CPU_FEATURE_PMUV3P4
Definition: libcpuid.h:1011
@ CPU_FEATURE_SSSE3
Definition: libcpuid.h:846
@ CPU_FEATURE_DIT
Definition: libcpuid.h:1001
@ CPU_FEATURE_EBEP
Definition: libcpuid.h:1130
@ CPU_FEATURE_HAFT
Definition: libcpuid.h:1085
@ CPU_FEATURE_APERFMPERF
Definition: libcpuid.h:898
@ CPU_FEATURE_CONSTANT_TSC
Definition: libcpuid.h:889
@ CPU_FEATURE_LS64_ACCDATA
Definition: libcpuid.h:1055
@ CPU_FEATURE_MMX
Definition: libcpuid.h:828
@ CPU_FEATURE_THE
Definition: libcpuid.h:1109
@ CPU_FEATURE_SSE4_1
Definition: libcpuid.h:852
@ CPU_FEATURE_RASV1P1
Definition: libcpuid.h:1012
@ CPU_FEATURE_AVX512F
Definition: libcpuid.h:906
@ CPU_FEATURE_SEBEP
Definition: libcpuid.h:1135
@ CPU_FEATURE_BRBE
Definition: libcpuid.h:1118
@ CPU_FEATURE_AVX512DQ
Definition: libcpuid.h:907
@ CPU_FEATURE_DEBUGV8P4
Definition: libcpuid.h:1002
@ CPU_FEATURE_SMX
Definition: libcpuid.h:843
@ CPU_FEATURE_MEC
Definition: libcpuid.h:1125
@ CPU_FEATURE_THUMBEE
Definition: libcpuid.h:931
@ CPU_FEATURE_POPCNT
Definition: libcpuid.h:857
@ CPU_FEATURE_DEBUGV7
Definition: libcpuid.h:929
@ CPU_FEATURE_GCS
Definition: libcpuid.h:1131
@ CPU_FEATURE_MPAM
Definition: libcpuid.h:1010
@ CPU_FEATURE_LAHF_LM
Definition: libcpuid.h:869
@ CPU_FEATURE_DCA
Definition: libcpuid.h:851
@ CPU_FEATURE_SPEV1P3
Definition: libcpuid.h:1072
@ CPU_FEATURE_MIXEDENDEL0
Definition: libcpuid.h:947
@ CPU_FEATURE_CX8
Definition: libcpuid.h:815
@ CPU_FEATURE_PAT
Definition: libcpuid.h:822
@ CPU_FEATURE_ADVMULTS
Definition: libcpuid.h:924
@ CPU_FEATURE_VID
Definition: libcpuid.h:883
@ CPU_FEATURE_CRC32
Definition: libcpuid.h:938
@ CPU_FEATURE_LSE2
Definition: libcpuid.h:1009
@ CPU_FEATURE_ASID16
Definition: libcpuid.h:936
@ CPU_FEATURE_TM2
Definition: libcpuid.h:845
@ CPU_FEATURE_LOR
Definition: libcpuid.h:955
@ CPU_FEATURE_PDCM
Definition: libcpuid.h:850
@ CPU_FEATURE_SPEV1P4
Definition: libcpuid.h:1107
@ CPU_FEATURE_RDTSCP
Definition: libcpuid.h:867
@ CPU_FEATURE_RDSEED
Definition: libcpuid.h:915
@ CPU_FEATURE_PMULL
Definition: libcpuid.h:948
@ CPU_FEATURE_AA32BF16
Definition: libcpuid.h:1038
@ CPU_FEATURE_HLE
Definition: libcpuid.h:904
@ CPU_FEATURE_MTE4
Definition: libcpuid.h:1087
@ CPU_FEATURE_WDT
Definition: libcpuid.h:880
@ CPU_FEATURE_ATS1A
Definition: libcpuid.h:1078
@ CPU_FEATURE_EVT
Definition: libcpuid.h:1025
@ CPU_FEATURE_MTRR
Definition: libcpuid.h:817
@ CPU_FEATURE_DOTPROD
Definition: libcpuid.h:1003
@ CPU_FEATURE_SSE4A
Definition: libcpuid.h:874
@ CPU_FEATURE_CMOV
Definition: libcpuid.h:821
@ CPU_FEATURE_SVE_B16B16
Definition: libcpuid.h:1139
@ CPU_FEATURE_SSE
Definition: libcpuid.h:830
@ CPU_FEATURE_3DNOWPREFETCH
Definition: libcpuid.h:875
@ CPU_FEATURE_EXS
Definition: libcpuid.h:1026
@ CPU_FEATURE_PACQARMA5
Definition: libcpuid.h:996
@ CPU_FEATURE_ABLE
Definition: libcpuid.h:1127
@ CPU_FEATURE_PMUV3P9
Definition: libcpuid.h:1097
@ CPU_FEATURE_DEBUGV8P9
Definition: libcpuid.h:1081
@ CPU_FEATURE_THUMB2
Definition: libcpuid.h:928
@ CPU_FEATURE_PRFMSLC
Definition: libcpuid.h:1098
@ CPU_FEATURE_HYPERVISOR
Definition: libcpuid.h:920
@ CPU_FEATURE_VMID16
Definition: libcpuid.h:961
@ CPU_FEATURE_PA
Definition: libcpuid.h:900
@ CPU_FEATURE_AVX512VBMI2
Definition: libcpuid.h:919
@ CPU_FEATURE_CSV2_3
Definition: libcpuid.h:942
@ CPU_FEATURE_RNG_TRAP
Definition: libcpuid.h:1033
@ CPU_FEATURE_ANERR
Definition: libcpuid.h:1077
@ CPU_FEATURE_SME_FA64
Definition: libcpuid.h:1122
@ CPU_FEATURE_DE
Definition: libcpuid.h:809
@ CPU_FEATURE_NMI
Definition: libcpuid.h:1069
@ CPU_FEATURE_IESB
Definition: libcpuid.h:971
@ CPU_FEATURE_SHA1
Definition: libcpuid.h:950
@ CPU_FEATURE_TM_AMD
Definition: libcpuid.h:885
@ CPU_FEATURE_S1PIE
Definition: libcpuid.h:1101
@ CPU_FEATURE_BMI2
Definition: libcpuid.h:903
@ CPU_FEATURE_DS_CPL
Definition: libcpuid.h:841
@ CPU_FEATURE_TCR2
Definition: libcpuid.h:1073
@ CPU_FEATURE_THUMB
Definition: libcpuid.h:922
@ CPU_FEATURE_SS
Definition: libcpuid.h:832
@ CPU_FEATURE_AVX512VBMI
Definition: libcpuid.h:918
@ CPU_FEATURE_CMOW
Definition: libcpuid.h:1065
@ CPU_FEATURE_FLAGM
Definition: libcpuid.h:1006
@ CPU_FEATURE_S2FWB
Definition: libcpuid.h:1013
@ CPU_FEATURE_FMA3
Definition: libcpuid.h:891
@ CPU_FEATURE_PGE
Definition: libcpuid.h:819
@ CPU_FEATURE_DOUBLEFAULT2
Definition: libcpuid.h:1082
@ CPU_FEATURE_MTE2
Definition: libcpuid.h:1030
@ CPU_FEATURE_IBS
Definition: libcpuid.h:877
@ CPU_FEATURE_DOUBLEFAULT
Definition: libcpuid.h:1004
@ CPU_FEATURE_EPAC
Definition: libcpuid.h:988
@ CPU_FEATURE_MCA
Definition: libcpuid.h:820
@ CPU_FEATURE_FXSR_OPT
Definition: libcpuid.h:866
@ CPU_FEATURE_SPEV1P1
Definition: libcpuid.h:998
@ CPU_FEATURE_SME
Definition: libcpuid.h:1120
@ CPU_FEATURE_BBM
Definition: libcpuid.h:1000
@ CPU_FEATURE_MOVBE
Definition: libcpuid.h:856
@ CPU_FEATURE_LM
Definition: libcpuid.h:868
@ CPU_FEATURE_PAE
Definition: libcpuid.h:813
@ CPU_FEATURE_PACQARMA3
Definition: libcpuid.h:995
@ CPU_FEATURE_MTE_PERM
Definition: libcpuid.h:1091
@ CPU_FEATURE_S2PIE
Definition: libcpuid.h:1103
@ CPU_FEATURE_TTCNP
Definition: libcpuid.h:983
@ CPU_FEATURE_MMXEXT
Definition: libcpuid.h:862
@ CPU_FEATURE_SME2P1
Definition: libcpuid.h:1136
@ CPU_FEATURE_FP16
Definition: libcpuid.h:968
@ CPU_FEATURE_AVX
Definition: libcpuid.h:861
@ CPU_FEATURE_MTE_ASYM_FAULT
Definition: libcpuid.h:1058
@ CPU_FEATURE_MOPS
Definition: libcpuid.h:1068
@ CPU_FEATURE_XD
Definition: libcpuid.h:855
@ CPU_FEATURE_3DNOW
Definition: libcpuid.h:863
@ CPU_FEATURE_HAFDBS
Definition: libcpuid.h:953
@ CPU_FEATURE_DTS64
Definition: libcpuid.h:839
@ CPU_FEATURE_PMUV3P5
Definition: libcpuid.h:1031
@ CPU_FEATURE_WFXT
Definition: libcpuid.h:1063
@ CPU_FEATURE_LS64_V
Definition: libcpuid.h:1056
@ CPU_FEATURE_FRINTTS
Definition: libcpuid.h:1027
@ CPU_FEATURE_SVE_PMULL128
Definition: libcpuid.h:1113
@ CPU_FEATURE_SHA3
Definition: libcpuid.h:977
@ CPU_FEATURE_PFAR
Definition: libcpuid.h:1094
@ CPU_FEATURE_TRBE_EXT
Definition: libcpuid.h:1142
@ CPU_FEATURE_AVX512VL
Definition: libcpuid.h:913
@ CPU_FEATURE_LPA2
Definition: libcpuid.h:1053
@ CPU_FEATURE_TBM
Definition: libcpuid.h:893
@ CPU_FEATURE_PN
Definition: libcpuid.h:824
@ CPU_FEATURE_PFI
Definition: libcpuid.h:899
@ CPU_FEATURE_TTL
Definition: libcpuid.h:1018
@ CPU_FEATURE_IA64
Definition: libcpuid.h:835
@ CPU_FEATURE_MPAMV0P1
Definition: libcpuid.h:1045
@ CPU_FEATURE_BWE
Definition: libcpuid.h:1128
@ CPU_FEATURE_XTPR
Definition: libcpuid.h:849
@ CPU_FEATURE_CSV2
Definition: libcpuid.h:1021
@ CPU_FEATURE_AES
Definition: libcpuid.h:858
@ CPU_FEATURE_LS64
Definition: libcpuid.h:1054
@ CPU_FEATURE_AVX512CD
Definition: libcpuid.h:910
@ CPU_FEATURE_FXSR
Definition: libcpuid.h:829
@ CPU_FEATURE_BMI1
Definition: libcpuid.h:902
@ CPU_FEATURE_S2POE
Definition: libcpuid.h:1104
@ CPU_FEATURE_PBE
Definition: libcpuid.h:836
@ CPU_FEATURE_AVX512VNNI
Definition: libcpuid.h:917
@ CPU_FEATURE_CSV3
Definition: libcpuid.h:1022
@ CPU_FEATURE_RDM
Definition: libcpuid.h:959
@ CPU_FEATURE_RME
Definition: libcpuid.h:1119
@ CPU_FEATURE_CSSC
Definition: libcpuid.h:1080
@ CPU_FEATURE_MTE3
Definition: libcpuid.h:1057
@ CPU_FEATURE_DTS
Definition: libcpuid.h:826
@ CPU_FEATURE_PMUV3P7
Definition: libcpuid.h:1060
@ CPU_FEATURE_SPE_DPFZS
Definition: libcpuid.h:1106
@ CPU_FEATURE_LSE
Definition: libcpuid.h:956
@ CPU_FEATURE_LVA3
Definition: libcpuid.h:1134
@ CPU_FEATURE_JAZELLE
Definition: libcpuid.h:925
@ CPU_FEATURE_BF16
Definition: libcpuid.h:1040
@ CPU_FEATURE_F64MM
Definition: libcpuid.h:967
@ CPU_FEATURE_PMUV2
Definition: libcpuid.h:935
@ CPU_FEATURE_MISALIGNSSE
Definition: libcpuid.h:873
@ CPU_FEATURE_SCTLR2
Definition: libcpuid.h:1071
@ CPU_FEATURE_MPAMV1P1
Definition: libcpuid.h:1046
@ CPU_FEATURE_CPB
Definition: libcpuid.h:897
@ CPU_FEATURE_DEBUGV6P1
Definition: libcpuid.h:927
@ CPU_FEATURE_D128
Definition: libcpuid.h:1129
@ CPU_FEATURE_SVE2P1
Definition: libcpuid.h:1138
@ CPU_FEATURE_F16C
Definition: libcpuid.h:894
@ ERR_BADFMT
Definition: libcpuid.h:1197
@ ERR_NO_MEM
Definition: libcpuid.h:1195
@ ERR_NO_PERMS
Definition: libcpuid.h:1202
@ ERR_CPU_UNKN
Definition: libcpuid.h:1199
@ ERR_NO_RDMSR
Definition: libcpuid.h:1200
@ ERR_NOT_FOUND
Definition: libcpuid.h:1209
@ ERR_NO_CPUID
Definition: libcpuid.h:1193
@ ERR_INVMSR
Definition: libcpuid.h:1205
@ ERR_NOT_IMP
Definition: libcpuid.h:1198
@ ERR_INVRANGE
Definition: libcpuid.h:1208
@ ERR_OPEN
Definition: libcpuid.h:1196
@ ERR_IOCTL
Definition: libcpuid.h:1210
@ ERR_NO_DRIVER
Definition: libcpuid.h:1201
@ ERR_REQUEST
Definition: libcpuid.h:1211
@ ERR_NO_RDTSC
Definition: libcpuid.h:1194
@ ERR_OK
Definition: libcpuid.h:1192
@ ERR_EXTRACT
Definition: libcpuid.h:1203
@ ERR_HANDLE_R
Definition: libcpuid.h:1207
@ ERR_INVCNB
Definition: libcpuid.h:1206
@ ERR_HANDLE
Definition: libcpuid.h:1204
@ INTEL_SGX1
Definition: libcpuid.h:1181
@ INTEL_SGX2
Definition: libcpuid.h:1182
@ FEATURE_LEVEL_ARM_V8_0_A
Definition: libcpuid.h:225
@ NUM_FEATURE_LEVELS
Definition: libcpuid.h:244
@ FEATURE_LEVEL_ARM_V5
Definition: libcpuid.h:215
@ FEATURE_LEVEL_ARM_V8_0_R
Definition: libcpuid.h:227
@ FEATURE_LEVEL_ARM_V7E_M
Definition: libcpuid.h:224
@ FEATURE_LEVEL_I586
Definition: libcpuid.h:202
@ FEATURE_LEVEL_ARM_V6
Definition: libcpuid.h:219
@ FEATURE_LEVEL_ARM_V8_7_A
Definition: libcpuid.h:235
@ FEATURE_LEVEL_ARM_V3
Definition: libcpuid.h:212
@ FEATURE_LEVEL_ARM_V5TEJ
Definition: libcpuid.h:218
@ FEATURE_LEVEL_X86_64_V1
Definition: libcpuid.h:204
@ FEATURE_LEVEL_ARM_V9_2_A
Definition: libcpuid.h:240
@ FEATURE_LEVEL_ARM_V4T
Definition: libcpuid.h:214
@ FEATURE_LEVEL_ARM_V4
Definition: libcpuid.h:213
@ FEATURE_LEVEL_X86_64_V4
Definition: libcpuid.h:207
@ FEATURE_LEVEL_ARM_V8_1_M
Definition: libcpuid.h:229
@ FEATURE_LEVEL_I386
Definition: libcpuid.h:200
@ FEATURE_LEVEL_ARM_V6_M
Definition: libcpuid.h:220
@ FEATURE_LEVEL_ARM_V7_R
Definition: libcpuid.h:223
@ FEATURE_LEVEL_ARM_V7_A
Definition: libcpuid.h:221
@ FEATURE_LEVEL_ARM_V9_4_A
Definition: libcpuid.h:242
@ FEATURE_LEVEL_ARM_V7_M
Definition: libcpuid.h:222
@ FEATURE_LEVEL_X86_64_V3
Definition: libcpuid.h:206
@ FEATURE_LEVEL_ARM_V1
Definition: libcpuid.h:210
@ FEATURE_LEVEL_ARM_V9_3_A
Definition: libcpuid.h:241
@ FEATURE_LEVEL_ARM_V9_0_A
Definition: libcpuid.h:238
@ FEATURE_LEVEL_ARM_V8_8_A
Definition: libcpuid.h:236
@ FEATURE_LEVEL_ARM_V8_5_A
Definition: libcpuid.h:233
@ FEATURE_LEVEL_ARM_V8_2_A
Definition: libcpuid.h:230
@ FEATURE_LEVEL_X86_64_V2
Definition: libcpuid.h:205
@ FEATURE_LEVEL_ARM_V5TE
Definition: libcpuid.h:217
@ FEATURE_LEVEL_ARM_V8_3_A
Definition: libcpuid.h:231
@ FEATURE_LEVEL_ARM_V8_4_A
Definition: libcpuid.h:232
@ FEATURE_LEVEL_ARM_V5T
Definition: libcpuid.h:216
@ FEATURE_LEVEL_ARM_V9_1_A
Definition: libcpuid.h:239
@ FEATURE_LEVEL_ARM_V8_6_A
Definition: libcpuid.h:234
@ FEATURE_LEVEL_I486
Definition: libcpuid.h:201
@ FEATURE_LEVEL_ARM_V8_9_A
Definition: libcpuid.h:237
@ FEATURE_LEVEL_ARM_V8_1_A
Definition: libcpuid.h:228
@ FEATURE_LEVEL_I686
Definition: libcpuid.h:203
@ FEATURE_LEVEL_ARM_V8_0_M
Definition: libcpuid.h:226
@ FEATURE_LEVEL_ARM_V2
Definition: libcpuid.h:211
@ CPU_HINT_SSE_SIZE_AUTH
Definition: libcpuid.h:1153
@ VENDOR_NEXGEN
Definition: libcpuid.h:151
@ VENDOR_INTEL
Definition: libcpuid.h:148
@ VENDOR_APPLE
Definition: libcpuid.h:172
@ VENDOR_ARM
Definition: libcpuid.h:159
@ VENDOR_NVIDIA
Definition: libcpuid.h:167
@ VENDOR_RISE
Definition: libcpuid.h:155
@ NUM_CPU_VENDORS
Definition: libcpuid.h:178
@ VENDOR_SIS
Definition: libcpuid.h:156
@ VENDOR_SAMSUNG
Definition: libcpuid.h:170
@ VENDOR_BROADCOM
Definition: libcpuid.h:160
@ VENDOR_PHYTIUM
Definition: libcpuid.h:175
@ VENDOR_MARVELL
Definition: libcpuid.h:171
@ VENDOR_CAVIUM
Definition: libcpuid.h:161
@ VENDOR_UMC
Definition: libcpuid.h:153
@ VENDOR_MICROSOFT
Definition: libcpuid.h:174
@ VENDOR_FREESCALE
Definition: libcpuid.h:166
@ VENDOR_APM
Definition: libcpuid.h:168
@ VENDOR_AMD
Definition: libcpuid.h:149
@ VENDOR_NSC
Definition: libcpuid.h:157
@ VENDOR_FARADAY
Definition: libcpuid.h:173
@ VENDOR_INFINEON
Definition: libcpuid.h:165
@ VENDOR_CENTAUR
Definition: libcpuid.h:154
@ VENDOR_HYGON
Definition: libcpuid.h:158
@ VENDOR_FUJITSU
Definition: libcpuid.h:163
@ VENDOR_CYRIX
Definition: libcpuid.h:150
@ VENDOR_DEC
Definition: libcpuid.h:162
@ VENDOR_AMPERE
Definition: libcpuid.h:176
@ VENDOR_TRANSMETA
Definition: libcpuid.h:152
@ VENDOR_QUALCOMM
Definition: libcpuid.h:169
@ VENDOR_HISILICON
Definition: libcpuid.h:164
@ HYPERVISOR_PARALLELS
Definition: libcpuid.h:271
@ HYPERVISOR_NONE
Definition: libcpuid.h:267
@ HYPERVISOR_QEMU
Definition: libcpuid.h:272
@ HYPERVISOR_XEN
Definition: libcpuid.h:275
@ HYPERVISOR_BHYVE
Definition: libcpuid.h:268
@ HYPERVISOR_VMWARE
Definition: libcpuid.h:274
@ HYPERVISOR_VIRTUALBOX
Definition: libcpuid.h:273
@ NUM_HYPERVISOR_VENDORS
Definition: libcpuid.h:276
@ HYPERVISOR_KVM
Definition: libcpuid.h:270
@ HYPERVISOR_HYPERV
Definition: libcpuid.h:269
Contains ARM specific info.
Definition: libcpuid.h:512
uint16_t part_num
Definition: libcpuid.h:520
uint8_t implementer
Definition: libcpuid.h:514
uint8_t variant
Definition: libcpuid.h:517
uint8_t revision
Definition: libcpuid.h:523
Internal structure, used in affinity_mask_str_r and affinity_mask_str.
Definition: libcpuid_types.h:69
The return value of cpuid_get_epc().
Definition: libcpuid.h:1698
This contains the recognized CPU features/info.
Definition: libcpuid.h:529
int32_t l1_cacheline
Definition: libcpuid.h:683
int32_t num_logical_cpus
Definition: libcpuid.h:611
char brand_str[BRAND_STR_MAX]
Definition: libcpuid.h:544
int32_t l4_cache
Definition: libcpuid.h:653
int32_t l1_data_assoc
Definition: libcpuid.h:664
int32_t l3_cacheline
Definition: libcpuid.h:696
int32_t ext_model
Definition: libcpuid.h:591
int32_t l2_cache
Definition: libcpuid.h:647
int32_t l3_cache
Definition: libcpuid.h:650
int32_t l1_instruction_assoc
Definition: libcpuid.h:667
int32_t l4_assoc
Definition: libcpuid.h:676
int32_t l1_assoc
Definition: libcpuid.h:660
cpu_purpose_t purpose
Definition: libcpuid.h:757
int32_t l1_data_cache
Definition: libcpuid.h:633
cpu_feature_level_t feature_level
Definition: libcpuid.h:538
cpu_vendor_t vendor
Definition: libcpuid.h:547
int32_t family
Definition: libcpuid.h:562
int32_t l3_instances
Definition: libcpuid.h:711
int32_t stepping
Definition: libcpuid.h:576
int32_t l3_assoc
Definition: libcpuid.h:673
char vendor_str[VENDOR_STR_MAX]
Definition: libcpuid.h:541
int32_t l1_data_instances
Definition: libcpuid.h:702
char cpu_codename[CODENAME_STR_MAX]
Definition: libcpuid.h:730
struct cpu_sgx_t sgx
Definition: libcpuid.h:751
cpu_architecture_t architecture
Definition: libcpuid.h:531
int32_t l2_cacheline
Definition: libcpuid.h:693
int32_t l4_cacheline
Definition: libcpuid.h:699
uint8_t detection_hints[CPU_HINTS_MAX]
Definition: libcpuid.h:744
int32_t ext_family
Definition: libcpuid.h:583
int32_t num_cores
Definition: libcpuid.h:604
int32_t model
Definition: libcpuid.h:569
cpu_affinity_mask_t affinity_mask
Definition: libcpuid.h:754
int32_t l1_instruction_cacheline
Definition: libcpuid.h:690
int32_t l1_data_cacheline
Definition: libcpuid.h:687
int32_t l2_instances
Definition: libcpuid.h:708
int32_t sse_size
Definition: libcpuid.h:737
int32_t l1_instruction_instances
Definition: libcpuid.h:705
int32_t l4_instances
Definition: libcpuid.h:714
int32_t total_logical_cpus
Definition: libcpuid.h:627
int32_t l1_instruction_cache
Definition: libcpuid.h:641
int32_t l2_assoc
Definition: libcpuid.h:670
uint8_t flags[CPU_FLAGS_MAX]
Definition: libcpuid.h:554
a structure that holds a list of processor names
Definition: libcpuid.h:1782
char ** names
Definition: libcpuid.h:1786
int num_entries
Definition: libcpuid.h:1784
Internal structure, used in cpu_tsc_mark, cpu_tsc_unmark and cpu_clock_by_mark.
Definition: libcpuid.h:1218
uint64_t sys_clock
Definition: libcpuid.h:1220
uint64_t tsc
Definition: libcpuid.h:1219
Contains an array of raw CPUID data.
Definition: libcpuid.h:397
logical_cpu_t num_raw
Definition: libcpuid.h:406
struct cpu_raw_data_t * raw
Definition: libcpuid.h:409
bool with_affinity
Definition: libcpuid.h:403
Contains just the raw CPUID data.
Definition: libcpuid.h:288
uint64_t arm_mpidr
Definition: libcpuid.h:334
uint64_t arm_id_aa64zfr[MAX_ARM_ID_AA64ZFR_REGS]
Definition: libcpuid.h:386
uint32_t intel_fn4[MAX_INTELFN4_LEVEL][NUM_REGS]
Definition: libcpuid.h:298
uint32_t arm_id_afr[MAX_ARM_ID_AFR_REGS]
Definition: libcpuid.h:342
uint32_t arm_id_dfr[MAX_ARM_ID_DFR_REGS]
Definition: libcpuid.h:346
uint32_t arm_id_isar[MAX_ARM_ID_ISAR_REGS]
Definition: libcpuid.h:350
uint64_t arm_id_aa64isar[MAX_ARM_ID_AA64ISAR_REGS]
Definition: libcpuid.h:370
uint64_t arm_revidr
Definition: libcpuid.h:338
uint32_t arm_id_mmfr[MAX_ARM_ID_MMFR_REGS]
Definition: libcpuid.h:354
uint32_t arm_id_pfr[MAX_ARM_ID_PFR_REGS]
Definition: libcpuid.h:358
uint64_t arm_id_aa64afr[MAX_ARM_ID_AA64AFR_REGS]
Definition: libcpuid.h:362
uint64_t arm_midr
Definition: libcpuid.h:330
uint64_t arm_id_aa64smfr[MAX_ARM_ID_AA64SMFR_REGS]
Definition: libcpuid.h:382
uint32_t basic_cpuid[MAX_CPUID_LEVEL][NUM_REGS]
Definition: libcpuid.h:290
uint32_t amd_fn80000026h[MAX_AMDFN80000026H_LEVEL][NUM_REGS]
Definition: libcpuid.h:326
uint32_t intel_fn12h[MAX_INTELFN12H_LEVEL][NUM_REGS]
Definition: libcpuid.h:308
uint64_t arm_id_aa64pfr[MAX_ARM_ID_AA64PFR_REGS]
Definition: libcpuid.h:378
uint32_t intel_fn14h[MAX_INTELFN14H_LEVEL][NUM_REGS]
Definition: libcpuid.h:314
uint64_t arm_id_aa64mmfr[MAX_ARM_ID_AA64MMFR_REGS]
Definition: libcpuid.h:374
uint32_t amd_fn8000001dh[MAX_AMDFN8000001DH_LEVEL][NUM_REGS]
Definition: libcpuid.h:320
uint32_t ext_cpuid[MAX_EXT_CPUID_LEVEL][NUM_REGS]
Definition: libcpuid.h:293
uint32_t intel_fn11[MAX_INTELFN11_LEVEL][NUM_REGS]
Definition: libcpuid.h:303
uint64_t arm_id_aa64dfr[MAX_ARM_ID_AA64DFR_REGS]
Definition: libcpuid.h:366
This contains information about SGX features of the processor Example usage:
Definition: libcpuid.h:435
uint8_t max_enclave_32bit
Definition: libcpuid.h:442
uint64_t secs_attributes
Definition: libcpuid.h:468
uint8_t flags[SGX_FLAGS_MAX]
Definition: libcpuid.h:453
uint8_t max_enclave_64bit
Definition: libcpuid.h:447
uint32_t misc_select
Definition: libcpuid.h:463
uint64_t secs_xfrm
Definition: libcpuid.h:473
uint32_t present
Definition: libcpuid.h:437
int num_epc_sections
Definition: libcpuid.h:458
This contains the recognized features/info for all CPUs on the system.
Definition: libcpuid.h:763
int32_t l2_total_instances
Definition: libcpuid.h:777
int32_t l1_instruction_total_instances
Definition: libcpuid.h:774
int32_t l3_total_instances
Definition: libcpuid.h:780
struct cpu_id_t * cpu_types
Definition: libcpuid.h:768
uint8_t num_cpu_types
Definition: libcpuid.h:765
int32_t l1_data_total_instances
Definition: libcpuid.h:771
int32_t l4_total_instances
Definition: libcpuid.h:783
Contains x86 specific info.
Definition: libcpuid.h:481
int32_t model
Definition: libcpuid.h:486
struct cpu_sgx_t sgx
Definition: libcpuid.h:504
int32_t family
Definition: libcpuid.h:483
int32_t ext_model
Definition: libcpuid.h:498
int32_t ext_family
Definition: libcpuid.h:492
int32_t stepping
Definition: libcpuid.h:489
int32_t sse_size
Definition: libcpuid.h:501