[PATCH v7 074/120] x86/cpuid: Introduce cpuid_subleaf_raw()
"Ahmed S. Darwish" <[email protected]> Thu, 28 May 2026 17:38:36 +0200
| Newsgroups | dev.linux.lists.x86-cpuid,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
It is required for the conversion of SGX CPUID(0x12) call sites to the parsed CPUI API. Signed-off-by: Ahmed S. Darwish <[email protected]> --- arch/x86/include/asm/cpuid/api.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/include/asm/cpuid/api.h b/arch/x86/include/asm/cpuid/api.h index 540f886a61cd..1c0bb7ed4d45 100644 --- a/arch/x86/include/asm/cpuid/api.h +++ b/arch/x86/include/asm/cpuid/api.h @@ -381,6 +381,18 @@ static inline u32 cpuid_base_hypervisor(const char *sig, u32 leaves) #define cpuid_leaf_raw(_cpuinfo, _leaf) \ ((const struct cpuid_regs *)(cpuid_leaf(_cpuinfo, _leaf))) +/** + * cpuid_subleaf_raw() - Access parsed CPUID data in raw format + * @_cpuinfo: CPU capability structure reference ('struct cpuinfo_x86') + * @_leaf: CPUID leaf, in compile-time 0xN format + * @_subleaf: CPUID subleaf, in compile-time decimal format + * + * Similar to cpuid_subleaf(), but returns a raw 'struct cpuid_regs' pointer to + * the parsed CPUID data instead of a "typed" <asm/cpuid/leaf_types.h> pointer. + */ +#define cpuid_subleaf_raw(_cpuinfo, _leaf, _subleaf) \ + ((const struct cpuid_regs *)(cpuid_subleaf(_cpuinfo, _leaf, _subleaf))) + /* * Call-site APIs for CPUID leaves with a subleaf range: */ -- 2.54.0