|
PatchworkOS
|
CPU feature detection. More...
Data Structures | |
| struct | cpuid_output_t |
| Output structure for CPUID instruction. More... | |
| struct | cpuid_feature_info_t |
| CPU feature information structure. More... | |
| struct | cpuid_extended_feature_info_t |
| CPU extended feature information structure. More... | |
Functions | |
| static void | cpuid (cpuid_input_eax_t eax, cpuid_input_ecx_t ecx, cpuid_output_t *out) |
| CPUID instruction. | |
| static void | cpuid_feature_info (cpuid_feature_info_t *info) |
| Wrapper to get CPU feature information. | |
| static void | cpuid_extended_feature_info (cpuid_extended_feature_info_t *info) |
| Wrapper to get CPU extended feature information. | |
CPU feature detection.
The sys/cpuid.h header provides functions for detecting CPU features using the CPUID instruction.
| enum cpuid_ebx_features_t |
EBX feature flags.
These flags are returned in the EBX register after calling the CPUID instruction with EAX=CPUID_FEATURE_EXTENDED_ID.
These flags are returned in the EBX register after calling the CPUID instruction with EAX=CPUID_EAX_EXTENDED_FEATURE_INFO and ECX=0.
| enum cpuid_ecx_features_t |
ECX feature flags.
These flags are returned in the ECX register after calling the CPUID instruction with EAX=CPUID_EAX_FEATURE_INFO.
| enum cpuid_edx_features_t |
| enum cpuid_input_eax_t |
| enum cpuid_input_ecx_t |
|
inlinestatic |
CPUID instruction.
| eax | Input EAX value. |
| ecx | Input ECX value. |
| out | Output structure. |
Definition at line 182 of file cpuid.h.
References cpuid_output_t::eax, cpuid_output_t::ebx, cpuid_output_t::ecx, and cpuid_output_t::edx.
Referenced by cpuid_extended_feature_info(), and cpuid_feature_info().
|
inlinestatic |
Wrapper to get CPU extended feature information.
| info | Output pointer. |
Definition at line 228 of file cpuid.h.
References cpuid(), CPUID_EAX_EXTENDED_FEATURE_INFO, CPUID_ECX_NONE, cpuid_output_t::ebx, and info.
Referenced by simd_cpu_init(), and simd_xsave_init().
|
inlinestatic |
Wrapper to get CPU feature information.
| info | Output pointer. |
Definition at line 204 of file cpuid.h.
References cpuid(), CPUID_EAX_FEATURE_INFO, CPUID_ECX_NONE, cpuid_output_t::eax, cpuid_output_t::ebx, cpuid_output_t::ecx, cpuid_output_t::edx, and info.
Referenced by rand_cpu_init(), simd_cpu_init(), simd_ctx_load(), simd_ctx_save(), and simd_xsave_init().