-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wreturn-type"
-reg32 cpu_r_cr0() {
- asm volatile ("mov %cr0, %eax");
-}
-
-reg32 cpu_r_cr2() {
- asm volatile ("mov %cr2, %eax");
-}
+int
+cpu_has_apic()
+{
+ // reference: Intel manual, section 10.4.2
+ reg32 eax = 0, ebx = 0, edx = 0, ecx = 0;
+ __get_cpuid(1, &eax, &ebx, &ecx, &edx);