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__
115 /* Include C99 booleans: */
116 #include <stdbool.h>
117 
118 /* Include some integer type specifications: */
119 #include "libcpuid_types.h"
120 
121 /* Some limits and other constants */
122 #include "libcpuid_constants.h"
123 
124 #ifndef LIBCPUID_DEPRECATED
125 # if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */
126 # define LIBCPUID_DEPRECATED(message) [[deprecated(message)]]
127 # elif (defined(GNUC) && (GNUC > 4 || (GNUC == 4 && GNUC_MINOR >= 5))) || defined(__clang__)
128 # define LIBCPUID_DEPRECATED(message) __attribute__((deprecated(message)))
129 # elif defined(__GNUC__) && (__GNUC__ >= 3)
130 # define LIBCPUID_DEPRECATED(message) __attribute__((deprecated))
131 # elif defined(_MSC_VER)
132 # define LIBCPUID_DEPRECATED(message) __declspec(deprecated(message))
133 # else
134 # pragma message("WARNING: You need to implement LIBCPUID_DEPRECATED for this compiler")
135 # define LIBCPUID_DEPRECATED(message)
136 # endif
137 #endif /* LIBCPUID_DEPRECATED */
138 
139 #ifdef __cplusplus
140 extern "C" {
141 #endif
142 
146 typedef enum {
178  VENDOR_UNKNOWN = -1,
179 } cpu_vendor_t;
180 #define NUM_CPU_VENDORS NUM_CPU_VENDORS
181 
185 typedef enum {
190  ARCHITECTURE_UNKNOWN = -1,
192 #define NUM_CPU_ARCHITECTURES NUM_CPU_ARCHITECTURES
193 
197 typedef enum {
198  /* x86: https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels */
208  /* ARM: https://en.wikipedia.org/wiki/ARM_architecture_family#Cores */
244  FEATURE_LEVEL_UNKNOWN = -1,
246 #define NUM_FEATURE_LEVELS NUM_FEATURE_LEVELS
247 
251 typedef enum {
259 } cpu_purpose_t;
260 #define NUM_CPU_PURPOSES NUM_CPU_PURPOSES
261 
265 typedef enum {
276  HYPERVISOR_UNKNOWN = -1,
278 #define NUM_HYPERVISOR_VENDORS NUM_HYPERVISOR_VENDORS
279 
289  uint32_t basic_cpuid[MAX_CPUID_LEVEL][NUM_REGS];
290 
292  uint32_t ext_cpuid[MAX_EXT_CPUID_LEVEL][NUM_REGS];
293 
297  uint32_t intel_fn4[MAX_INTELFN4_LEVEL][NUM_REGS];
298 
302  uint32_t intel_fn11[MAX_INTELFN11_LEVEL][NUM_REGS];
303 
307  uint32_t intel_fn12h[MAX_INTELFN12H_LEVEL][NUM_REGS];
308 
313  uint32_t intel_fn14h[MAX_INTELFN14H_LEVEL][NUM_REGS];
314 
319  uint32_t amd_fn8000001dh[MAX_AMDFN8000001DH_LEVEL][NUM_REGS];
320 
325  uint32_t amd_fn80000026h[MAX_AMDFN80000026H_LEVEL][NUM_REGS];
326 
329  uint64_t arm_midr;
330 
333  uint64_t arm_mpidr;
334 
337  uint64_t arm_revidr;
338 
341  uint32_t arm_id_afr[MAX_ARM_ID_AFR_REGS];
342 
345  uint32_t arm_id_dfr[MAX_ARM_ID_DFR_REGS];
346 
349  uint32_t arm_id_isar[MAX_ARM_ID_ISAR_REGS];
350 
353  uint32_t arm_id_mmfr[MAX_ARM_ID_MMFR_REGS];
354 
357  uint32_t arm_id_pfr[MAX_ARM_ID_PFR_REGS];
358 
361  uint64_t arm_id_aa64afr[MAX_ARM_ID_AA64AFR_REGS];
362 
365  uint64_t arm_id_aa64dfr[MAX_ARM_ID_AA64DFR_REGS];
366 
369  uint64_t arm_id_aa64isar[MAX_ARM_ID_AA64ISAR_REGS];
370 
373  uint64_t arm_id_aa64mmfr[MAX_ARM_ID_AA64MMFR_REGS];
374 
377  uint64_t arm_id_aa64pfr[MAX_ARM_ID_AA64PFR_REGS];
378 
381  uint64_t arm_id_aa64smfr[MAX_ARM_ID_AA64SMFR_REGS];
382 
385  uint64_t arm_id_aa64zfr[MAX_ARM_ID_AA64ZFR_REGS];
386 };
387 
403 
405  logical_cpu_t num_raw;
406 
409 };
410 
434 struct cpu_sgx_t {
436  uint32_t present;
437 
442 
447 
452  uint8_t flags[SGX_FLAGS_MAX];
453 
458 
462  uint32_t misc_select;
463 
467  uint64_t secs_attributes;
468 
472  uint64_t secs_xfrm;
473 };
474 
480 struct x86_id_t {
482  int32_t family;
483 
485  int32_t model;
486 
488  int32_t stepping;
489 
491  int32_t ext_family;
492 
497  int32_t ext_model;
498 
500  int32_t sse_size;
501 
503  struct cpu_sgx_t sgx;
504 };
505 
511 struct arm_id_t {
513  uint8_t implementer;
514 
516  uint8_t variant;
517 
519  uint16_t part_num;
520 
522  uint8_t revision;
523 };
524 
528 struct cpu_id_t {
531 
538 
540  char vendor_str[VENDOR_STR_MAX];
541 
543  char brand_str[BRAND_STR_MAX];
544 
547 
553  uint8_t flags[CPU_FLAGS_MAX];
554 
555 #ifndef LIBCPUID_DISABLE_DEPRECATED
560  LIBCPUID_DEPRECATED("replace with '.x86.family' in your code to fix the warning")
561  int32_t family;
562 
567  LIBCPUID_DEPRECATED("replace with '.x86.model' in your code to fix the warning")
568  int32_t model;
569 
574  LIBCPUID_DEPRECATED("replace with '.x86.stepping' in your code to fix the warning")
575  int32_t stepping;
576 
581  LIBCPUID_DEPRECATED("replace with '.x86.ext_family' in your code to fix the warning")
582  int32_t ext_family;
583 
589  LIBCPUID_DEPRECATED("replace with '.x86.ext_model' in your code to fix the warning")
590  int32_t ext_model;
591 #endif /* LIBCPUID_DISABLE_DEPRECATED */
592 
597  union {
598  struct x86_id_t x86;
599  struct arm_id_t arm;
600  };
601 
603  int32_t num_cores;
604 
611 
627 
632  int32_t l1_data_cache;
633 
641 
646  int32_t l2_cache;
647 
649  int32_t l3_cache;
650 
652  int32_t l4_cache;
653 
654 #ifndef LIBCPUID_DISABLE_DEPRECATED
658  LIBCPUID_DEPRECATED("replace with 'l1_data_assoc' in your code to fix the warning")
659  int32_t l1_assoc;
660 #endif /* LIBCPUID_DISABLE_DEPRECATED */
661 
663  int32_t l1_data_assoc;
664 
667 
669  int32_t l2_assoc;
670 
672  int32_t l3_assoc;
673 
675  int32_t l4_assoc;
676 
677 #ifndef LIBCPUID_DISABLE_DEPRECATED
681  LIBCPUID_DEPRECATED("replace with 'l1_data_cacheline' in your code to fix the warning")
682  int32_t l1_cacheline;
683 #endif /* LIBCPUID_DISABLE_DEPRECATED */
684 
687 
690 
692  int32_t l2_cacheline;
693 
695  int32_t l3_cacheline;
696 
698  int32_t l4_cacheline;
699 
702 
705 
707  int32_t l2_instances;
708 
710  int32_t l3_instances;
711 
713  int32_t l4_instances;
714 
729  char cpu_codename[CODENAME_STR_MAX];
730 
735  LIBCPUID_DEPRECATED("replace with '.x86.sse_size' in your code to fix the warning")
736  int32_t sse_size;
737 
743  uint8_t detection_hints[CPU_HINTS_MAX];
744 
749  LIBCPUID_DEPRECATED("replace with '.x86.sgx' in your code to fix the warning")
750  struct cpu_sgx_t sgx;
751 
754 
757 };
758 
762 struct system_id_t {
764  uint8_t num_cpu_types;
765 
768 
771 
774 
777 
780 
783 };
784 
805 typedef enum {
1142  /* termination: */
1143  NUM_CPU_FEATURES,
1144 } cpu_feature_t;
1145 
1151 typedef enum {
1153  /* termination */
1154  NUM_CPU_HINTS,
1155 } cpu_hint_t;
1156 
1179 typedef enum {
1183  /* termination: */
1184  NUM_SGX_FEATURES,
1186 
1190 typedef enum {
1191  ERR_OK = 0,
1194  ERR_NO_MEM = -3,
1195  ERR_OPEN = -4,
1196  ERR_BADFMT = -5,
1202  ERR_EXTRACT = -11,
1203  ERR_HANDLE = -12,
1204  ERR_INVMSR = -13,
1205  ERR_INVCNB = -14,
1209  ERR_IOCTL = -18,
1210  ERR_REQUEST = -19,
1211 } cpu_error_t;
1212 
1217 struct cpu_mark_t {
1218  uint64_t tsc;
1219  uint64_t sys_clock;
1220 };
1221 
1233 
1239 int cpuid_present(void);
1240 
1248 void cpu_exec_cpuid(uint32_t eax, uint32_t* regs);
1249 
1258 void cpu_exec_cpuid_ext(uint32_t* regs);
1259 
1268 
1279 int cpuid_get_raw_data_core(struct cpu_raw_data_t* data, logical_cpu_t logical_cpu);
1280 
1291 
1309 int cpuid_serialize_raw_data(struct cpu_raw_data_t* data, const char* filename);
1310 
1328 int cpuid_serialize_all_raw_data(struct cpu_raw_data_array_t* data, const char* filename);
1329 
1342 int cpuid_deserialize_raw_data(struct cpu_raw_data_t* data, const char* filename);
1343 
1358 int cpuid_deserialize_all_raw_data(struct cpu_raw_data_array_t* data, const char* filename);
1359 
1383 int cpu_identify(struct cpu_raw_data_t* raw, struct cpu_id_t* data);
1384 
1399 int cpu_identify_all(struct cpu_raw_data_array_t* raw_array, struct system_id_t* system);
1400 
1414 
1421 
1428 
1435 
1443 char* affinity_mask_str_r(cpu_affinity_mask_t* affinity_mask, char* buffer, uint32_t buffer_len);
1444 
1452 
1460 const char* cpu_feature_str(cpu_feature_t feature);
1461 
1470 const char* cpuid_error(void);
1471 
1496 void cpu_rdtsc(uint64_t* result);
1497 
1510 void cpu_tsc_mark(struct cpu_mark_t* mark);
1511 
1535 void cpu_tsc_unmark(struct cpu_mark_t* mark);
1536 
1553 int cpu_clock_by_mark(struct cpu_mark_t* mark);
1554 
1570 
1613 int cpu_clock_measure(int millis, int quad_check);
1614 
1654 int cpu_clock_by_ic(int millis, int runs);
1655 
1676 
1687 int cpu_clock(void);
1688 
1689 
1697 struct cpu_epc_t {
1698  uint64_t start_addr;
1699  uint64_t length;
1700 };
1701 
1713 struct cpu_epc_t cpuid_get_epc(int index, const struct cpu_raw_data_t* raw);
1714 
1720 const char* cpuid_lib_version(void);
1721 
1722 typedef void (*libcpuid_warn_fn_t) (const char *msg);
1736 libcpuid_warn_fn_t cpuid_set_warn_function(libcpuid_warn_fn_t warn_fun);
1737 
1750 
1751 
1759 
1777 
1781 struct cpu_list_t {
1785  char **names;
1786 };
1787 
1807 
1816 void cpuid_free_cpu_list(struct cpu_list_t* list);
1817 
1827 
1836 void cpuid_free_system_id(struct system_id_t* system);
1837 
1838 struct msr_driver_t;
1850 struct msr_driver_t* cpu_msr_driver_open(void);
1851 
1865 struct msr_driver_t* cpu_msr_driver_open_core(unsigned core_num);
1866 
1891 int cpu_rdmsr(struct msr_driver_t* handle, uint32_t msr_index, uint64_t* result);
1892 
1893 
1894 typedef enum {
1895  INFO_MPERF,
1898  INFO_APERF,
1909  INFO_THROTTLING,
1911  INFO_VOLTAGE,
1914  INFO_BUS_CLOCK,
1918 
1933 int cpu_rdmsr_range(struct msr_driver_t* handle, uint32_t msr_index, uint8_t highbit,
1934  uint8_t lowbit, uint64_t* result);
1935 
1949 int cpu_msrinfo(struct msr_driver_t* handle, cpu_msrinfo_request_t which);
1950 #define CPU_INVALID_VALUE 0x3fffffff
1951 
1969 int msr_serialize_raw_data(struct msr_driver_t* handle, const char* filename);
1970 
1983 int cpu_msr_driver_close(struct msr_driver_t* handle);
1984 
1985 #ifdef __cplusplus
1986 } /* extern "C" */
1987 #endif
1988 
1989 
1992 #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:251
cpu_msrinfo_request_t
Definition: libcpuid.h:1894
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:185
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:805
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:1190
cpu_sgx_feature_t
SGX features flags.
Definition: libcpuid.h:1179
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:197
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:1151
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:146
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:265
@ PURPOSE_GENERAL
Definition: libcpuid.h:252
@ PURPOSE_PERFORMANCE
Definition: libcpuid.h:253
@ NUM_CPU_PURPOSES
Definition: libcpuid.h:258
@ PURPOSE_U_PERFORMANCE
Definition: libcpuid.h:256
@ PURPOSE_LP_EFFICIENCY
Definition: libcpuid.h:255
@ PURPOSE_EFFICIENCY
Definition: libcpuid.h:254
@ INFO_BCLK
Definition: libcpuid.h:1913
@ INFO_MIN_MULTIPLIER
Definition: libcpuid.h:1901
@ INFO_MPERF
Definition: libcpuid.h:1895
@ INFO_THROTTLING
Definition: libcpuid.h:1909
@ INFO_VOLTAGE
Definition: libcpuid.h:1911
@ INFO_CUR_MULTIPLIER
Definition: libcpuid.h:1903
@ INFO_APERF
Definition: libcpuid.h:1898
@ INFO_BUS_CLOCK
Definition: libcpuid.h:1914
@ INFO_TEMPERATURE
Definition: libcpuid.h:1908
@ INFO_MAX_MULTIPLIER
Definition: libcpuid.h:1906
@ ARCHITECTURE_ARM
Definition: libcpuid.h:187
@ ARCHITECTURE_X86
Definition: libcpuid.h:186
@ NUM_CPU_ARCHITECTURES
Definition: libcpuid.h:189
@ CPU_FEATURE_SPECRES
Definition: libcpuid.h:1034
@ CPU_FEATURE_DPB
Definition: libcpuid.h:963
@ CPU_FEATURE_F32MM
Definition: libcpuid.h:965
@ CPU_FEATURE_TLBIOS
Definition: libcpuid.h:1014
@ CPU_FEATURE_DIVIDE
Definition: libcpuid.h:931
@ CPU_FEATURE_PAN3
Definition: libcpuid.h:1058
@ CPU_FEATURE_UAO
Definition: libcpuid.h:983
@ CPU_FEATURE_BTI
Definition: libcpuid.h:1019
@ CPU_FEATURE_JSCVT
Definition: libcpuid.h:991
@ CPU_FEATURE_SME2
Definition: libcpuid.h:1125
@ CPU_FEATURE_RNG
Definition: libcpuid.h:1031
@ CPU_FEATURE_ADERR
Definition: libcpuid.h:1074
@ CPU_FEATURE_PAUTH
Definition: libcpuid.h:996
@ CPU_FEATURE_AMUV1
Definition: libcpuid.h:998
@ CPU_FEATURE_MTPMU
Definition: libcpuid.h:1046
@ CPU_FEATURE_TME
Definition: libcpuid.h:1115
@ CPU_FEATURE_LPAE
Definition: libcpuid.h:932
@ CPU_FEATURE_LPA
Definition: libcpuid.h:971
@ CPU_FEATURE_SSBS
Definition: libcpuid.h:1035
@ CPU_FEATURE_SVE_SHA3
Definition: libcpuid.h:1113
@ CPU_FEATURE_PAN
Definition: libcpuid.h:956
@ CPU_FEATURE_ECV
Definition: libcpuid.h:1041
@ CPU_FEATURE_SSE5
Definition: libcpuid.h:877
@ CPU_FEATURE_MCE
Definition: libcpuid.h:813
@ CPU_FEATURE_AVX2
Definition: libcpuid.h:900
@ CPU_FEATURE_SPEV1P2
Definition: libcpuid.h:1061
@ CPU_FEATURE_MSR
Definition: libcpuid.h:811
@ CPU_FEATURE_SME_I16I64
Definition: libcpuid.h:1122
@ CPU_FEATURE_SM3
Definition: libcpuid.h:978
@ CPU_FEATURE_APIC
Definition: libcpuid.h:815
@ CPU_FEATURE_SPE
Definition: libcpuid.h:980
@ CPU_FEATURE_MONITOR
Definition: libcpuid.h:839
@ CPU_FEATURE_CLRBHB
Definition: libcpuid.h:1078
@ CPU_FEATURE_RDRAND
Definition: libcpuid.h:894
@ CPU_FEATURE_CONSTPACFIELD
Definition: libcpuid.h:986
@ CPU_FEATURE_PNI
Definition: libcpuid.h:836
@ CPU_FEATURE_SKINIT
Definition: libcpuid.h:878
@ CPU_FEATURE_ECBHB
Definition: libcpuid.h:1082
@ CPU_FEATURE_FID
Definition: libcpuid.h:881
@ CPU_FEATURE_DEBUGV6
Definition: libcpuid.h:925
@ CPU_FEATURE_PMUV1
Definition: libcpuid.h:933
@ CPU_FEATURE_SSE4_2
Definition: libcpuid.h:852
@ CPU_FEATURE_SWAP
Definition: libcpuid.h:920
@ CPU_FEATURE_VME
Definition: libcpuid.h:807
@ CPU_FEATURE_STC
Definition: libcpuid.h:885
@ CPU_FEATURE_MTE
Definition: libcpuid.h:1028
@ CPU_FEATURE_SGX
Definition: libcpuid.h:913
@ CPU_FEATURE_RTM
Definition: libcpuid.h:904
@ CPU_FEATURE_TTP
Definition: libcpuid.h:883
@ CPU_FEATURE_IDST
Definition: libcpuid.h:1006
@ CPU_FEATURE_AFP
Definition: libcpuid.h:1049
@ CPU_FEATURE_CSV2_2
Definition: libcpuid.h:940
@ CPU_FEATURE_VHE
Definition: libcpuid.h:959
@ CPU_FEATURE_FHM
Definition: libcpuid.h:1004
@ CPU_FEATURE_HWPSTATE
Definition: libcpuid.h:887
@ CPU_FEATURE_SHA512
Definition: libcpuid.h:977
@ CPU_FEATURE_PMUV3_SS
Definition: libcpuid.h:1095
@ CPU_FEATURE_AIE
Definition: libcpuid.h:1075
@ CPU_FEATURE_LSE128
Definition: libcpuid.h:1132
@ CPU_FEATURE_SEP
Definition: libcpuid.h:817
@ CPU_FEATURE_AVX512BW
Definition: libcpuid.h:911
@ CPU_FEATURE_DPB2
Definition: libcpuid.h:1022
@ CPU_FEATURE_TTST
Definition: libcpuid.h:1018
@ CPU_FEATURE_XS
Definition: libcpuid.h:1063
@ CPU_FEATURE_VMX
Definition: libcpuid.h:841
@ CPU_FEATURE_E0PD
Definition: libcpuid.h:1023
@ CPU_FEATURE_AVX512PF
Definition: libcpuid.h:907
@ CPU_FEATURE_SME_F64F64
Definition: libcpuid.h:1120
@ CPU_FEATURE_RASV2
Definition: libcpuid.h:1098
@ CPU_FEATURE_AA32I8MM
Definition: libcpuid.h:962
@ CPU_FEATURE_SHA256
Definition: libcpuid.h:950
@ CPU_FEATURE_RPRFM
Definition: libcpuid.h:1099
@ CPU_FEATURE_CLFLUSH
Definition: libcpuid.h:824
@ CPU_FEATURE_SB
Definition: libcpuid.h:1033
@ CPU_FEATURE_SYSREG128
Definition: libcpuid.h:1140
@ CPU_FEATURE_ACPI
Definition: libcpuid.h:826
@ CPU_FEATURE_PAUTH2
Definition: libcpuid.h:1047
@ CPU_FEATURE_MTE_CANONICAL_TAGS
Definition: libcpuid.h:1088
@ CPU_FEATURE_TRBE
Definition: libcpuid.h:1116
@ CPU_FEATURE_EBF16
Definition: libcpuid.h:1050
@ CPU_FEATURE_HCX
Definition: libcpuid.h:1051
@ CPU_FEATURE_PMUV3
Definition: libcpuid.h:948
@ CPU_FEATURE_FCMA
Definition: libcpuid.h:988
@ CPU_FEATURE_RPRES
Definition: libcpuid.h:1060
@ CPU_FEATURE_NTLBPA
Definition: libcpuid.h:951
@ CPU_FEATURE_SVE
Definition: libcpuid.h:981
@ CPU_FEATURE_FLAGM2
Definition: libcpuid.h:1027
@ CPU_FEATURE_LRCPC
Definition: libcpuid.h:992
@ CPU_FEATURE_TM
Definition: libcpuid.h:833
@ CPU_FEATURE_SSE2
Definition: libcpuid.h:830
@ CPU_FEATURE_LRCPC3
Definition: libcpuid.h:1085
@ CPU_FEATURE_ETS2
Definition: libcpuid.h:943
@ CPU_FEATURE_FGT2
Definition: libcpuid.h:1083
@ CPU_FEATURE_FMA4
Definition: libcpuid.h:891
@ CPU_FEATURE_MTE_TAGGED_FAR
Definition: libcpuid.h:1092
@ CPU_FEATURE_XNX
Definition: libcpuid.h:984
@ CPU_FEATURE_SVE_SM4
Definition: libcpuid.h:1114
@ CPU_FEATURE_SEL2
Definition: libcpuid.h:1013
@ CPU_FEATURE_CSV2_1P1
Definition: libcpuid.h:938
@ CPU_FEATURE_FPU
Definition: libcpuid.h:806
@ CPU_FEATURE_SSBS2
Definition: libcpuid.h:1036
@ CPU_FEATURE_LSMAOC
Definition: libcpuid.h:972
@ CPU_FEATURE_CX16
Definition: libcpuid.h:847
@ CPU_FEATURE_100MHZSTEPS
Definition: libcpuid.h:886
@ CPU_FEATURE_MTE_STORE_ONLY
Definition: libcpuid.h:1091
@ CPU_FEATURE_ADVMULTU
Definition: libcpuid.h:922
@ CPU_FEATURE_TSC
Definition: libcpuid.h:810
@ CPU_FEATURE_XSAVE
Definition: libcpuid.h:858
@ CPU_FEATURE_PACIMP
Definition: libcpuid.h:993
@ CPU_FEATURE_AMUV1P1
Definition: libcpuid.h:1038
@ CPU_FEATURE_DEBUGV8P2
Definition: libcpuid.h:964
@ CPU_FEATURE_NX
Definition: libcpuid.h:864
@ CPU_FEATURE_SYSINSTR128
Definition: libcpuid.h:1139
@ CPU_FEATURE_HBC
Definition: libcpuid.h:1066
@ CPU_FEATURE_SME_F16F16
Definition: libcpuid.h:1136
@ CPU_FEATURE_DGH
Definition: libcpuid.h:1040
@ CPU_FEATURE_SVM
Definition: libcpuid.h:870
@ CPU_FEATURE_PCLMUL
Definition: libcpuid.h:837
@ CPU_FEATURE_PAN2
Definition: libcpuid.h:974
@ CPU_FEATURE_CMP_LEGACY
Definition: libcpuid.h:869
@ CPU_FEATURE_TLBIRANGE
Definition: libcpuid.h:1015
@ CPU_FEATURE_SPECRES2
Definition: libcpuid.h:1104
@ CPU_FEATURE_OSXSAVE
Definition: libcpuid.h:859
@ CPU_FEATURE_PMUV3P1
Definition: libcpuid.h:957
@ CPU_FEATURE_PMUV3P8
Definition: libcpuid.h:1069
@ CPU_FEATURE_HPMN0
Definition: libcpuid.h:1043
@ CPU_FEATURE_CID
Definition: libcpuid.h:846
@ CPU_FEATURE_PSE
Definition: libcpuid.h:809
@ CPU_FEATURE_XOP
Definition: libcpuid.h:889
@ CPU_FEATURE_SVE_BITPERM
Definition: libcpuid.h:1111
@ CPU_FEATURE_RAS
Definition: libcpuid.h:975
@ CPU_FEATURE_TWED
Definition: libcpuid.h:1048
@ CPU_FEATURE_I8MM
Definition: libcpuid.h:969
@ CPU_FEATURE_FPAC
Definition: libcpuid.h:989
@ CPU_FEATURE_PSE36
Definition: libcpuid.h:822
@ CPU_FEATURE_FGT
Definition: libcpuid.h:1042
@ CPU_FEATURE_MTE_ASYNC
Definition: libcpuid.h:1087
@ CPU_FEATURE_AVX512ER
Definition: libcpuid.h:908
@ CPU_FEATURE_ITE
Definition: libcpuid.h:1131
@ CPU_FEATURE_OSVW
Definition: libcpuid.h:875
@ CPU_FEATURE_DOUBLELOCK
Definition: libcpuid.h:942
@ CPU_FEATURE_3DNOWEXT
Definition: libcpuid.h:863
@ CPU_FEATURE_SYSCALL
Definition: libcpuid.h:853
@ CPU_FEATURE_SHA_NI
Definition: libcpuid.h:910
@ CPU_FEATURE_SVE_AES
Definition: libcpuid.h:1110
@ CPU_FEATURE_ABM
Definition: libcpuid.h:871
@ CPU_FEATURE_TS
Definition: libcpuid.h:880
@ CPU_FEATURE_LRCPC2
Definition: libcpuid.h:1007
@ CPU_FEATURE_HT
Definition: libcpuid.h:832
@ CPU_FEATURE_HPDS2
Definition: libcpuid.h:968
@ CPU_FEATURE_MIXEDEND
Definition: libcpuid.h:945
@ CPU_FEATURE_PMUV3_ICNTR
Definition: libcpuid.h:1094
@ CPU_FEATURE_X2APIC
Definition: libcpuid.h:895
@ CPU_FEATURE_TIDCP1
Definition: libcpuid.h:1073
@ CPU_FEATURE_SM4
Definition: libcpuid.h:979
@ CPU_FEATURE_BRBEV1P1
Definition: libcpuid.h:1123
@ CPU_FEATURE_SPMU
Definition: libcpuid.h:1107
@ CPU_FEATURE_S1POE
Definition: libcpuid.h:1101
@ CPU_FEATURE_MTE_NO_ADDRESS_TAGS
Definition: libcpuid.h:1089
@ CPU_FEATURE_DEBUGV7P1
Definition: libcpuid.h:929
@ CPU_FEATURE_FPACCOMBINE
Definition: libcpuid.h:990
@ CPU_FEATURE_CSV2_1P2
Definition: libcpuid.h:939
@ CPU_FEATURE_AA32HPD
Definition: libcpuid.h:961
@ CPU_FEATURE_TRF
Definition: libcpuid.h:1016
@ CPU_FEATURE_CCIDX
Definition: libcpuid.h:985
@ CPU_FEATURE_ADVSIMD
Definition: libcpuid.h:936
@ CPU_FEATURE_ADX
Definition: libcpuid.h:915
@ CPU_FEATURE_HPDS
Definition: libcpuid.h:953
@ CPU_FEATURE_SVE2
Definition: libcpuid.h:1109
@ CPU_FEATURE_DEBUGV8P8
Definition: libcpuid.h:1065
@ CPU_FEATURE_EST
Definition: libcpuid.h:843
@ CPU_FEATURE_LVA
Definition: libcpuid.h:973
@ CPU_FEATURE_FP
Definition: libcpuid.h:944
@ CPU_FEATURE_PMUV3P4
Definition: libcpuid.h:1010
@ CPU_FEATURE_SSSE3
Definition: libcpuid.h:845
@ CPU_FEATURE_DIT
Definition: libcpuid.h:1000
@ CPU_FEATURE_EBEP
Definition: libcpuid.h:1129
@ CPU_FEATURE_HAFT
Definition: libcpuid.h:1084
@ CPU_FEATURE_APERFMPERF
Definition: libcpuid.h:897
@ CPU_FEATURE_CONSTANT_TSC
Definition: libcpuid.h:888
@ CPU_FEATURE_LS64_ACCDATA
Definition: libcpuid.h:1054
@ CPU_FEATURE_MMX
Definition: libcpuid.h:827
@ CPU_FEATURE_THE
Definition: libcpuid.h:1108
@ CPU_FEATURE_SSE4_1
Definition: libcpuid.h:851
@ CPU_FEATURE_RASV1P1
Definition: libcpuid.h:1011
@ CPU_FEATURE_AVX512F
Definition: libcpuid.h:905
@ CPU_FEATURE_SEBEP
Definition: libcpuid.h:1134
@ CPU_FEATURE_BRBE
Definition: libcpuid.h:1117
@ CPU_FEATURE_AVX512DQ
Definition: libcpuid.h:906
@ CPU_FEATURE_DEBUGV8P4
Definition: libcpuid.h:1001
@ CPU_FEATURE_SMX
Definition: libcpuid.h:842
@ CPU_FEATURE_MEC
Definition: libcpuid.h:1124
@ CPU_FEATURE_THUMBEE
Definition: libcpuid.h:930
@ CPU_FEATURE_POPCNT
Definition: libcpuid.h:856
@ CPU_FEATURE_DEBUGV7
Definition: libcpuid.h:928
@ CPU_FEATURE_GCS
Definition: libcpuid.h:1130
@ CPU_FEATURE_MPAM
Definition: libcpuid.h:1009
@ CPU_FEATURE_LAHF_LM
Definition: libcpuid.h:868
@ CPU_FEATURE_DCA
Definition: libcpuid.h:850
@ CPU_FEATURE_SPEV1P3
Definition: libcpuid.h:1071
@ CPU_FEATURE_MIXEDENDEL0
Definition: libcpuid.h:946
@ CPU_FEATURE_CX8
Definition: libcpuid.h:814
@ CPU_FEATURE_PAT
Definition: libcpuid.h:821
@ CPU_FEATURE_ADVMULTS
Definition: libcpuid.h:923
@ CPU_FEATURE_VID
Definition: libcpuid.h:882
@ CPU_FEATURE_CRC32
Definition: libcpuid.h:937
@ CPU_FEATURE_LSE2
Definition: libcpuid.h:1008
@ CPU_FEATURE_ASID16
Definition: libcpuid.h:935
@ CPU_FEATURE_TM2
Definition: libcpuid.h:844
@ CPU_FEATURE_LOR
Definition: libcpuid.h:954
@ CPU_FEATURE_PDCM
Definition: libcpuid.h:849
@ CPU_FEATURE_SPEV1P4
Definition: libcpuid.h:1106
@ CPU_FEATURE_RDTSCP
Definition: libcpuid.h:866
@ CPU_FEATURE_RDSEED
Definition: libcpuid.h:914
@ CPU_FEATURE_PMULL
Definition: libcpuid.h:947
@ CPU_FEATURE_AA32BF16
Definition: libcpuid.h:1037
@ CPU_FEATURE_HLE
Definition: libcpuid.h:903
@ CPU_FEATURE_MTE4
Definition: libcpuid.h:1086
@ CPU_FEATURE_WDT
Definition: libcpuid.h:879
@ CPU_FEATURE_ATS1A
Definition: libcpuid.h:1077
@ CPU_FEATURE_EVT
Definition: libcpuid.h:1024
@ CPU_FEATURE_MTRR
Definition: libcpuid.h:816
@ CPU_FEATURE_DOTPROD
Definition: libcpuid.h:1002
@ CPU_FEATURE_SSE4A
Definition: libcpuid.h:873
@ CPU_FEATURE_CMOV
Definition: libcpuid.h:820
@ CPU_FEATURE_SVE_B16B16
Definition: libcpuid.h:1138
@ CPU_FEATURE_SSE
Definition: libcpuid.h:829
@ CPU_FEATURE_3DNOWPREFETCH
Definition: libcpuid.h:874
@ CPU_FEATURE_EXS
Definition: libcpuid.h:1025
@ CPU_FEATURE_PACQARMA5
Definition: libcpuid.h:995
@ CPU_FEATURE_ABLE
Definition: libcpuid.h:1126
@ CPU_FEATURE_PMUV3P9
Definition: libcpuid.h:1096
@ CPU_FEATURE_DEBUGV8P9
Definition: libcpuid.h:1080
@ CPU_FEATURE_THUMB2
Definition: libcpuid.h:927
@ CPU_FEATURE_PRFMSLC
Definition: libcpuid.h:1097
@ CPU_FEATURE_HYPERVISOR
Definition: libcpuid.h:919
@ CPU_FEATURE_VMID16
Definition: libcpuid.h:960
@ CPU_FEATURE_PA
Definition: libcpuid.h:899
@ CPU_FEATURE_AVX512VBMI2
Definition: libcpuid.h:918
@ CPU_FEATURE_CSV2_3
Definition: libcpuid.h:941
@ CPU_FEATURE_RNG_TRAP
Definition: libcpuid.h:1032
@ CPU_FEATURE_ANERR
Definition: libcpuid.h:1076
@ CPU_FEATURE_SME_FA64
Definition: libcpuid.h:1121
@ CPU_FEATURE_DE
Definition: libcpuid.h:808
@ CPU_FEATURE_NMI
Definition: libcpuid.h:1068
@ CPU_FEATURE_IESB
Definition: libcpuid.h:970
@ CPU_FEATURE_SHA1
Definition: libcpuid.h:949
@ CPU_FEATURE_TM_AMD
Definition: libcpuid.h:884
@ CPU_FEATURE_S1PIE
Definition: libcpuid.h:1100
@ CPU_FEATURE_BMI2
Definition: libcpuid.h:902
@ CPU_FEATURE_DS_CPL
Definition: libcpuid.h:840
@ CPU_FEATURE_TCR2
Definition: libcpuid.h:1072
@ CPU_FEATURE_THUMB
Definition: libcpuid.h:921
@ CPU_FEATURE_SS
Definition: libcpuid.h:831
@ CPU_FEATURE_AVX512VBMI
Definition: libcpuid.h:917
@ CPU_FEATURE_CMOW
Definition: libcpuid.h:1064
@ CPU_FEATURE_FLAGM
Definition: libcpuid.h:1005
@ CPU_FEATURE_S2FWB
Definition: libcpuid.h:1012
@ CPU_FEATURE_FMA3
Definition: libcpuid.h:890
@ CPU_FEATURE_PGE
Definition: libcpuid.h:818
@ CPU_FEATURE_DOUBLEFAULT2
Definition: libcpuid.h:1081
@ CPU_FEATURE_MTE2
Definition: libcpuid.h:1029
@ CPU_FEATURE_IBS
Definition: libcpuid.h:876
@ CPU_FEATURE_DOUBLEFAULT
Definition: libcpuid.h:1003
@ CPU_FEATURE_EPAC
Definition: libcpuid.h:987
@ CPU_FEATURE_MCA
Definition: libcpuid.h:819
@ CPU_FEATURE_FXSR_OPT
Definition: libcpuid.h:865
@ CPU_FEATURE_SPEV1P1
Definition: libcpuid.h:997
@ CPU_FEATURE_SME
Definition: libcpuid.h:1119
@ CPU_FEATURE_BBM
Definition: libcpuid.h:999
@ CPU_FEATURE_MOVBE
Definition: libcpuid.h:855
@ CPU_FEATURE_LM
Definition: libcpuid.h:867
@ CPU_FEATURE_PAE
Definition: libcpuid.h:812
@ CPU_FEATURE_PACQARMA3
Definition: libcpuid.h:994
@ CPU_FEATURE_MTE_PERM
Definition: libcpuid.h:1090
@ CPU_FEATURE_S2PIE
Definition: libcpuid.h:1102
@ CPU_FEATURE_TTCNP
Definition: libcpuid.h:982
@ CPU_FEATURE_MMXEXT
Definition: libcpuid.h:861
@ CPU_FEATURE_SME2P1
Definition: libcpuid.h:1135
@ CPU_FEATURE_FP16
Definition: libcpuid.h:967
@ CPU_FEATURE_AVX
Definition: libcpuid.h:860
@ CPU_FEATURE_MTE_ASYM_FAULT
Definition: libcpuid.h:1057
@ CPU_FEATURE_MOPS
Definition: libcpuid.h:1067
@ CPU_FEATURE_XD
Definition: libcpuid.h:854
@ CPU_FEATURE_3DNOW
Definition: libcpuid.h:862
@ CPU_FEATURE_HAFDBS
Definition: libcpuid.h:952
@ CPU_FEATURE_DTS64
Definition: libcpuid.h:838
@ CPU_FEATURE_PMUV3P5
Definition: libcpuid.h:1030
@ CPU_FEATURE_WFXT
Definition: libcpuid.h:1062
@ CPU_FEATURE_LS64_V
Definition: libcpuid.h:1055
@ CPU_FEATURE_FRINTTS
Definition: libcpuid.h:1026
@ CPU_FEATURE_SVE_PMULL128
Definition: libcpuid.h:1112
@ CPU_FEATURE_SHA3
Definition: libcpuid.h:976
@ CPU_FEATURE_PFAR
Definition: libcpuid.h:1093
@ CPU_FEATURE_TRBE_EXT
Definition: libcpuid.h:1141
@ CPU_FEATURE_AVX512VL
Definition: libcpuid.h:912
@ CPU_FEATURE_LPA2
Definition: libcpuid.h:1052
@ CPU_FEATURE_TBM
Definition: libcpuid.h:892
@ CPU_FEATURE_PN
Definition: libcpuid.h:823
@ CPU_FEATURE_PFI
Definition: libcpuid.h:898
@ CPU_FEATURE_TTL
Definition: libcpuid.h:1017
@ CPU_FEATURE_IA64
Definition: libcpuid.h:834
@ CPU_FEATURE_MPAMV0P1
Definition: libcpuid.h:1044
@ CPU_FEATURE_BWE
Definition: libcpuid.h:1127
@ CPU_FEATURE_XTPR
Definition: libcpuid.h:848
@ CPU_FEATURE_CSV2
Definition: libcpuid.h:1020
@ CPU_FEATURE_AES
Definition: libcpuid.h:857
@ CPU_FEATURE_LS64
Definition: libcpuid.h:1053
@ CPU_FEATURE_AVX512CD
Definition: libcpuid.h:909
@ CPU_FEATURE_FXSR
Definition: libcpuid.h:828
@ CPU_FEATURE_BMI1
Definition: libcpuid.h:901
@ CPU_FEATURE_S2POE
Definition: libcpuid.h:1103
@ CPU_FEATURE_PBE
Definition: libcpuid.h:835
@ CPU_FEATURE_AVX512VNNI
Definition: libcpuid.h:916
@ CPU_FEATURE_CSV3
Definition: libcpuid.h:1021
@ CPU_FEATURE_RDM
Definition: libcpuid.h:958
@ CPU_FEATURE_RME
Definition: libcpuid.h:1118
@ CPU_FEATURE_CSSC
Definition: libcpuid.h:1079
@ CPU_FEATURE_MTE3
Definition: libcpuid.h:1056
@ CPU_FEATURE_DTS
Definition: libcpuid.h:825
@ CPU_FEATURE_PMUV3P7
Definition: libcpuid.h:1059
@ CPU_FEATURE_SPE_DPFZS
Definition: libcpuid.h:1105
@ CPU_FEATURE_LSE
Definition: libcpuid.h:955
@ CPU_FEATURE_LVA3
Definition: libcpuid.h:1133
@ CPU_FEATURE_JAZELLE
Definition: libcpuid.h:924
@ CPU_FEATURE_BF16
Definition: libcpuid.h:1039
@ CPU_FEATURE_F64MM
Definition: libcpuid.h:966
@ CPU_FEATURE_PMUV2
Definition: libcpuid.h:934
@ CPU_FEATURE_MISALIGNSSE
Definition: libcpuid.h:872
@ CPU_FEATURE_SCTLR2
Definition: libcpuid.h:1070
@ CPU_FEATURE_MPAMV1P1
Definition: libcpuid.h:1045
@ CPU_FEATURE_CPB
Definition: libcpuid.h:896
@ CPU_FEATURE_DEBUGV6P1
Definition: libcpuid.h:926
@ CPU_FEATURE_D128
Definition: libcpuid.h:1128
@ CPU_FEATURE_SVE2P1
Definition: libcpuid.h:1137
@ CPU_FEATURE_F16C
Definition: libcpuid.h:893
@ ERR_BADFMT
Definition: libcpuid.h:1196
@ ERR_NO_MEM
Definition: libcpuid.h:1194
@ ERR_NO_PERMS
Definition: libcpuid.h:1201
@ ERR_CPU_UNKN
Definition: libcpuid.h:1198
@ ERR_NO_RDMSR
Definition: libcpuid.h:1199
@ ERR_NOT_FOUND
Definition: libcpuid.h:1208
@ ERR_NO_CPUID
Definition: libcpuid.h:1192
@ ERR_INVMSR
Definition: libcpuid.h:1204
@ ERR_NOT_IMP
Definition: libcpuid.h:1197
@ ERR_INVRANGE
Definition: libcpuid.h:1207
@ ERR_OPEN
Definition: libcpuid.h:1195
@ ERR_IOCTL
Definition: libcpuid.h:1209
@ ERR_NO_DRIVER
Definition: libcpuid.h:1200
@ ERR_REQUEST
Definition: libcpuid.h:1210
@ ERR_NO_RDTSC
Definition: libcpuid.h:1193
@ ERR_OK
Definition: libcpuid.h:1191
@ ERR_EXTRACT
Definition: libcpuid.h:1202
@ ERR_HANDLE_R
Definition: libcpuid.h:1206
@ ERR_INVCNB
Definition: libcpuid.h:1205
@ ERR_HANDLE
Definition: libcpuid.h:1203
@ INTEL_SGX1
Definition: libcpuid.h:1180
@ INTEL_SGX2
Definition: libcpuid.h:1181
@ FEATURE_LEVEL_ARM_V8_0_A
Definition: libcpuid.h:224
@ NUM_FEATURE_LEVELS
Definition: libcpuid.h:243
@ FEATURE_LEVEL_ARM_V5
Definition: libcpuid.h:214
@ FEATURE_LEVEL_ARM_V8_0_R
Definition: libcpuid.h:226
@ FEATURE_LEVEL_ARM_V7E_M
Definition: libcpuid.h:223
@ FEATURE_LEVEL_I586
Definition: libcpuid.h:201
@ FEATURE_LEVEL_ARM_V6
Definition: libcpuid.h:218
@ FEATURE_LEVEL_ARM_V8_7_A
Definition: libcpuid.h:234
@ FEATURE_LEVEL_ARM_V3
Definition: libcpuid.h:211
@ FEATURE_LEVEL_ARM_V5TEJ
Definition: libcpuid.h:217
@ FEATURE_LEVEL_X86_64_V1
Definition: libcpuid.h:203
@ FEATURE_LEVEL_ARM_V9_2_A
Definition: libcpuid.h:239
@ FEATURE_LEVEL_ARM_V4T
Definition: libcpuid.h:213
@ FEATURE_LEVEL_ARM_V4
Definition: libcpuid.h:212
@ FEATURE_LEVEL_X86_64_V4
Definition: libcpuid.h:206
@ FEATURE_LEVEL_ARM_V8_1_M
Definition: libcpuid.h:228
@ FEATURE_LEVEL_I386
Definition: libcpuid.h:199
@ FEATURE_LEVEL_ARM_V6_M
Definition: libcpuid.h:219
@ FEATURE_LEVEL_ARM_V7_R
Definition: libcpuid.h:222
@ FEATURE_LEVEL_ARM_V7_A
Definition: libcpuid.h:220
@ FEATURE_LEVEL_ARM_V9_4_A
Definition: libcpuid.h:241
@ FEATURE_LEVEL_ARM_V7_M
Definition: libcpuid.h:221
@ FEATURE_LEVEL_X86_64_V3
Definition: libcpuid.h:205
@ FEATURE_LEVEL_ARM_V1
Definition: libcpuid.h:209
@ FEATURE_LEVEL_ARM_V9_3_A
Definition: libcpuid.h:240
@ FEATURE_LEVEL_ARM_V9_0_A
Definition: libcpuid.h:237
@ FEATURE_LEVEL_ARM_V8_8_A
Definition: libcpuid.h:235
@ FEATURE_LEVEL_ARM_V8_5_A
Definition: libcpuid.h:232
@ FEATURE_LEVEL_ARM_V8_2_A
Definition: libcpuid.h:229
@ FEATURE_LEVEL_X86_64_V2
Definition: libcpuid.h:204
@ FEATURE_LEVEL_ARM_V5TE
Definition: libcpuid.h:216
@ FEATURE_LEVEL_ARM_V8_3_A
Definition: libcpuid.h:230
@ FEATURE_LEVEL_ARM_V8_4_A
Definition: libcpuid.h:231
@ FEATURE_LEVEL_ARM_V5T
Definition: libcpuid.h:215
@ FEATURE_LEVEL_ARM_V9_1_A
Definition: libcpuid.h:238
@ FEATURE_LEVEL_ARM_V8_6_A
Definition: libcpuid.h:233
@ FEATURE_LEVEL_I486
Definition: libcpuid.h:200
@ FEATURE_LEVEL_ARM_V8_9_A
Definition: libcpuid.h:236
@ FEATURE_LEVEL_ARM_V8_1_A
Definition: libcpuid.h:227
@ FEATURE_LEVEL_I686
Definition: libcpuid.h:202
@ FEATURE_LEVEL_ARM_V8_0_M
Definition: libcpuid.h:225
@ FEATURE_LEVEL_ARM_V2
Definition: libcpuid.h:210
@ CPU_HINT_SSE_SIZE_AUTH
Definition: libcpuid.h:1152
@ VENDOR_NEXGEN
Definition: libcpuid.h:150
@ VENDOR_INTEL
Definition: libcpuid.h:147
@ VENDOR_APPLE
Definition: libcpuid.h:171
@ VENDOR_ARM
Definition: libcpuid.h:158
@ VENDOR_NVIDIA
Definition: libcpuid.h:166
@ VENDOR_RISE
Definition: libcpuid.h:154
@ NUM_CPU_VENDORS
Definition: libcpuid.h:177
@ VENDOR_SIS
Definition: libcpuid.h:155
@ VENDOR_SAMSUNG
Definition: libcpuid.h:169
@ VENDOR_BROADCOM
Definition: libcpuid.h:159
@ VENDOR_PHYTIUM
Definition: libcpuid.h:174
@ VENDOR_MARVELL
Definition: libcpuid.h:170
@ VENDOR_CAVIUM
Definition: libcpuid.h:160
@ VENDOR_UMC
Definition: libcpuid.h:152
@ VENDOR_MICROSOFT
Definition: libcpuid.h:173
@ VENDOR_FREESCALE
Definition: libcpuid.h:165
@ VENDOR_APM
Definition: libcpuid.h:167
@ VENDOR_AMD
Definition: libcpuid.h:148
@ VENDOR_NSC
Definition: libcpuid.h:156
@ VENDOR_FARADAY
Definition: libcpuid.h:172
@ VENDOR_INFINEON
Definition: libcpuid.h:164
@ VENDOR_CENTAUR
Definition: libcpuid.h:153
@ VENDOR_HYGON
Definition: libcpuid.h:157
@ VENDOR_FUJITSU
Definition: libcpuid.h:162
@ VENDOR_CYRIX
Definition: libcpuid.h:149
@ VENDOR_DEC
Definition: libcpuid.h:161
@ VENDOR_AMPERE
Definition: libcpuid.h:175
@ VENDOR_TRANSMETA
Definition: libcpuid.h:151
@ VENDOR_QUALCOMM
Definition: libcpuid.h:168
@ VENDOR_HISILICON
Definition: libcpuid.h:163
@ HYPERVISOR_PARALLELS
Definition: libcpuid.h:270
@ HYPERVISOR_NONE
Definition: libcpuid.h:266
@ HYPERVISOR_QEMU
Definition: libcpuid.h:271
@ HYPERVISOR_XEN
Definition: libcpuid.h:274
@ HYPERVISOR_BHYVE
Definition: libcpuid.h:267
@ HYPERVISOR_VMWARE
Definition: libcpuid.h:273
@ HYPERVISOR_VIRTUALBOX
Definition: libcpuid.h:272
@ NUM_HYPERVISOR_VENDORS
Definition: libcpuid.h:275
@ HYPERVISOR_KVM
Definition: libcpuid.h:269
@ HYPERVISOR_HYPERV
Definition: libcpuid.h:268
Contains ARM specific info.
Definition: libcpuid.h:511
uint16_t part_num
Definition: libcpuid.h:519
uint8_t implementer
Definition: libcpuid.h:513
uint8_t variant
Definition: libcpuid.h:516
uint8_t revision
Definition: libcpuid.h:522
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:1697
This contains the recognized CPU features/info.
Definition: libcpuid.h:528
int32_t l1_cacheline
Definition: libcpuid.h:682
int32_t num_logical_cpus
Definition: libcpuid.h:610
char brand_str[BRAND_STR_MAX]
Definition: libcpuid.h:543
int32_t l4_cache
Definition: libcpuid.h:652
int32_t l1_data_assoc
Definition: libcpuid.h:663
int32_t l3_cacheline
Definition: libcpuid.h:695
int32_t ext_model
Definition: libcpuid.h:590
int32_t l2_cache
Definition: libcpuid.h:646
int32_t l3_cache
Definition: libcpuid.h:649
int32_t l1_instruction_assoc
Definition: libcpuid.h:666
int32_t l4_assoc
Definition: libcpuid.h:675
int32_t l1_assoc
Definition: libcpuid.h:659
cpu_purpose_t purpose
Definition: libcpuid.h:756
int32_t l1_data_cache
Definition: libcpuid.h:632
cpu_feature_level_t feature_level
Definition: libcpuid.h:537
cpu_vendor_t vendor
Definition: libcpuid.h:546
int32_t family
Definition: libcpuid.h:561
int32_t l3_instances
Definition: libcpuid.h:710
int32_t stepping
Definition: libcpuid.h:575
int32_t l3_assoc
Definition: libcpuid.h:672
char vendor_str[VENDOR_STR_MAX]
Definition: libcpuid.h:540
int32_t l1_data_instances
Definition: libcpuid.h:701
char cpu_codename[CODENAME_STR_MAX]
Definition: libcpuid.h:729
struct cpu_sgx_t sgx
Definition: libcpuid.h:750
cpu_architecture_t architecture
Definition: libcpuid.h:530
int32_t l2_cacheline
Definition: libcpuid.h:692
int32_t l4_cacheline
Definition: libcpuid.h:698
uint8_t detection_hints[CPU_HINTS_MAX]
Definition: libcpuid.h:743
int32_t ext_family
Definition: libcpuid.h:582
int32_t num_cores
Definition: libcpuid.h:603
int32_t model
Definition: libcpuid.h:568
cpu_affinity_mask_t affinity_mask
Definition: libcpuid.h:753
int32_t l1_instruction_cacheline
Definition: libcpuid.h:689
int32_t l1_data_cacheline
Definition: libcpuid.h:686
int32_t l2_instances
Definition: libcpuid.h:707
int32_t sse_size
Definition: libcpuid.h:736
int32_t l1_instruction_instances
Definition: libcpuid.h:704
int32_t l4_instances
Definition: libcpuid.h:713
int32_t total_logical_cpus
Definition: libcpuid.h:626
int32_t l1_instruction_cache
Definition: libcpuid.h:640
int32_t l2_assoc
Definition: libcpuid.h:669
uint8_t flags[CPU_FLAGS_MAX]
Definition: libcpuid.h:553
a structure that holds a list of processor names
Definition: libcpuid.h:1781
char ** names
Definition: libcpuid.h:1785
int num_entries
Definition: libcpuid.h:1783
Internal structure, used in cpu_tsc_mark, cpu_tsc_unmark and cpu_clock_by_mark.
Definition: libcpuid.h:1217
uint64_t sys_clock
Definition: libcpuid.h:1219
uint64_t tsc
Definition: libcpuid.h:1218
Contains an array of raw CPUID data.
Definition: libcpuid.h:396
logical_cpu_t num_raw
Definition: libcpuid.h:405
struct cpu_raw_data_t * raw
Definition: libcpuid.h:408
bool with_affinity
Definition: libcpuid.h:402
Contains just the raw CPUID data.
Definition: libcpuid.h:287
uint64_t arm_mpidr
Definition: libcpuid.h:333
uint64_t arm_id_aa64zfr[MAX_ARM_ID_AA64ZFR_REGS]
Definition: libcpuid.h:385
uint32_t intel_fn4[MAX_INTELFN4_LEVEL][NUM_REGS]
Definition: libcpuid.h:297
uint32_t arm_id_afr[MAX_ARM_ID_AFR_REGS]
Definition: libcpuid.h:341
uint32_t arm_id_dfr[MAX_ARM_ID_DFR_REGS]
Definition: libcpuid.h:345
uint32_t arm_id_isar[MAX_ARM_ID_ISAR_REGS]
Definition: libcpuid.h:349
uint64_t arm_id_aa64isar[MAX_ARM_ID_AA64ISAR_REGS]
Definition: libcpuid.h:369
uint64_t arm_revidr
Definition: libcpuid.h:337
uint32_t arm_id_mmfr[MAX_ARM_ID_MMFR_REGS]
Definition: libcpuid.h:353
uint32_t arm_id_pfr[MAX_ARM_ID_PFR_REGS]
Definition: libcpuid.h:357
uint64_t arm_id_aa64afr[MAX_ARM_ID_AA64AFR_REGS]
Definition: libcpuid.h:361
uint64_t arm_midr
Definition: libcpuid.h:329
uint64_t arm_id_aa64smfr[MAX_ARM_ID_AA64SMFR_REGS]
Definition: libcpuid.h:381
uint32_t basic_cpuid[MAX_CPUID_LEVEL][NUM_REGS]
Definition: libcpuid.h:289
uint32_t amd_fn80000026h[MAX_AMDFN80000026H_LEVEL][NUM_REGS]
Definition: libcpuid.h:325
uint32_t intel_fn12h[MAX_INTELFN12H_LEVEL][NUM_REGS]
Definition: libcpuid.h:307
uint64_t arm_id_aa64pfr[MAX_ARM_ID_AA64PFR_REGS]
Definition: libcpuid.h:377
uint32_t intel_fn14h[MAX_INTELFN14H_LEVEL][NUM_REGS]
Definition: libcpuid.h:313
uint64_t arm_id_aa64mmfr[MAX_ARM_ID_AA64MMFR_REGS]
Definition: libcpuid.h:373
uint32_t amd_fn8000001dh[MAX_AMDFN8000001DH_LEVEL][NUM_REGS]
Definition: libcpuid.h:319
uint32_t ext_cpuid[MAX_EXT_CPUID_LEVEL][NUM_REGS]
Definition: libcpuid.h:292
uint32_t intel_fn11[MAX_INTELFN11_LEVEL][NUM_REGS]
Definition: libcpuid.h:302
uint64_t arm_id_aa64dfr[MAX_ARM_ID_AA64DFR_REGS]
Definition: libcpuid.h:365
This contains information about SGX features of the processor Example usage:
Definition: libcpuid.h:434
uint8_t max_enclave_32bit
Definition: libcpuid.h:441
uint64_t secs_attributes
Definition: libcpuid.h:467
uint8_t flags[SGX_FLAGS_MAX]
Definition: libcpuid.h:452
uint8_t max_enclave_64bit
Definition: libcpuid.h:446
uint32_t misc_select
Definition: libcpuid.h:462
uint64_t secs_xfrm
Definition: libcpuid.h:472
uint32_t present
Definition: libcpuid.h:436
int num_epc_sections
Definition: libcpuid.h:457
This contains the recognized features/info for all CPUs on the system.
Definition: libcpuid.h:762
int32_t l2_total_instances
Definition: libcpuid.h:776
int32_t l1_instruction_total_instances
Definition: libcpuid.h:773
int32_t l3_total_instances
Definition: libcpuid.h:779
struct cpu_id_t * cpu_types
Definition: libcpuid.h:767
uint8_t num_cpu_types
Definition: libcpuid.h:764
int32_t l1_data_total_instances
Definition: libcpuid.h:770
int32_t l4_total_instances
Definition: libcpuid.h:782
Contains x86 specific info.
Definition: libcpuid.h:480
int32_t model
Definition: libcpuid.h:485
struct cpu_sgx_t sgx
Definition: libcpuid.h:503
int32_t family
Definition: libcpuid.h:482
int32_t ext_model
Definition: libcpuid.h:497
int32_t ext_family
Definition: libcpuid.h:491
int32_t stepping
Definition: libcpuid.h:488
int32_t sse_size
Definition: libcpuid.h:500