void
cpu_get_brand(char* brand_out);
+int
+cpu_has_apic();
+
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wreturn-type"
static inline reg32
static inline void
cpu_invplg(void* va)
{
- asm("invlpg (%0)" ::"r"((uintptr_t)va) : "memory");
+ asm volatile("invlpg (%0)" ::"r"((uintptr_t)va) : "memory");
}
static inline void
cpu_enable_interrupt()
{
- asm("sti");
+ asm volatile("sti");
}
static inline void
cpu_disable_interrupt()
{
- asm("cli");
+ asm volatile("cli");
}
static inline void
: "r"(interm));
}
+void
+cpu_rdmsr(uint32_t msr_idx, uint32_t* reg_high, uint32_t* reg_low);
+
+void
+cpu_wrmsr(uint32_t msr_idx, uint32_t reg_high, uint32_t reg_low);
+
#endif
\ No newline at end of file