Files
quark-kernel/src/x86/msr.c

18 lines
330 B
C

#include "x86/msr.h"
void read_msr(enum msr_id_t msr_addr, uint64_t *value)
{
uint64_t v;
asm volatile("rdmsr"
: "=A" (v)
: "c" (msr_addr));
*value = v;
}
void write_msr(enum msr_id_t msr_addr, uint64_t *value)
{
uint64_t v = *value;
asm volatile("wrmsr"
:: "c"(msr_addr), "A"(v));
}