Wrote some simple MSR code
This commit is contained in:
17
src/x86/msr.c
Normal file
17
src/x86/msr.c
Normal file
@@ -0,0 +1,17 @@
|
||||
#include "msr.h"
|
||||
|
||||
void read_msr(enum msr_id_t msr_addr, uint64_t *value)
|
||||
{
|
||||
uint64_t v;
|
||||
asm volatile("rdmsr"
|
||||
: "=edx:eax" (v)
|
||||
: "ecx" (msr_addr));
|
||||
*value = v;
|
||||
}
|
||||
|
||||
void write_msr(enum msr_id_t msr_addr, uint64_t *value)
|
||||
{
|
||||
uint64_t v = *value;
|
||||
asm volatile("wrmsr"
|
||||
:: "ecx"(msr_addr), "A"(v));
|
||||
}
|
||||
Reference in New Issue
Block a user