diff --git a/hypervisor/include/arch/x86/cpuid.h b/hypervisor/include/arch/x86/cpuid.h index eae8a6186..6533b336d 100644 --- a/hypervisor/include/arch/x86/cpuid.h +++ b/hypervisor/include/arch/x86/cpuid.h @@ -131,25 +131,15 @@ #define CPUID_EXTEND_INVA_TSC 0x80000007U #define CPUID_EXTEND_ADDRESS_SIZE 0x80000008U - -static inline void asm_cpuid(uint32_t *eax, uint32_t *ebx, +static inline void cpuid_subleaf(uint32_t leaf, uint32_t subleaf, + uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) { /* Execute CPUID instruction and save results */ asm volatile("cpuid":"=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx) - : "0" (*eax), "2" (*ecx) + : "a" (leaf), "c" (subleaf) : "memory"); } -static inline void cpuid_subleaf(uint32_t leaf, uint32_t subleaf, - uint32_t *eax, uint32_t *ebx, - uint32_t *ecx, uint32_t *edx) -{ - *eax = leaf; - *ecx = subleaf; - - asm_cpuid(eax, ebx, ecx, edx); -} - #endif /* CPUID_H_ */