15 lines
316 B
C
15 lines
316 B
C
|
#pragma once
|
||
|
|
||
|
static void cpuid(unsigned int *eax, unsigned int *ebx,
|
||
|
unsigned int *ecx, unsigned int *edx)
|
||
|
{
|
||
|
/* ecx is often an input as well as an output. */
|
||
|
asm volatile("cpuid"
|
||
|
: "=a" (*eax),
|
||
|
"=b" (*ebx),
|
||
|
"=c" (*ecx),
|
||
|
"=d" (*edx)
|
||
|
: "0" (*eax), "2" (*ecx)
|
||
|
: "memory");
|
||
|
}
|