/* * @author xamidev * @brief x86 CPU identification * @license GPL-3.0-only */ #include /* * 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)); }