Files
pepperOS/src/arch/x86/cpuid.c
T

20 lines
495 B
C

/*
* @author xamidev <xamidev@riseup.net>
* @brief x86 CPU identification
* @license GPL-3.0-only
*/
#include <stdint.h>
/*
* cpuid - Wrapper for CPUID instruction
* @leaf: Requested leaf
* @eax: EAX register value
* @ebx: EBX register value
* @ecx: ECX register value
* @edx: EDX register value
*/
void cpuid(uint32_t leaf, uint32_t* eax, uint32_t* ebx, uint32_t* ecx, uint32_t* edx)
{
__asm__ volatile("cpuid" : "=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx) : "a"(leaf));
}