x86: add inline CPUID instruction

main
anna 3 years ago
parent 637ac5ce92
commit eba1c83c2f
Signed by: fef
GPG Key ID: EC22E476DC2D3D84

@ -74,6 +74,22 @@ static __always_inline void halt(void)
__asm__ volatile("hlt");
}
struct x86_cpuid_ret {
u32 eax;
u32 ebx;
u32 ecx;
u32 edx;
};
static inline void x86_cpuid(struct x86_cpuid_ret *ret, u32 eax, u32 ecx)
{
__asm__ volatile(
"cpuid"
: "=a"(ret->eax), "=b"(ret->ebx), "=c"(ret->ecx), "=d"(ret->edx)
: "0"(eax), "c"(ecx)
);
}
static __always_inline void x86_pause(void)
{
__asm__ volatile("pause");

Loading…
Cancel
Save