LF OS
Hobby operating system for amd64 with high ambitions
Loading...
Searching...
No Matches
msr.c
Go to the documentation of this file.
1
#include "
msr.h
"
2
3
void
write_msr
(
uint32_t
msr,
uint64_t
value) {
4
asm
volatile
(
5
"wrmsr"
::
6
"a"
(value & 0xFFFFFFFF),
"d"
((value >> 32) & 0xFFFFFFFF),
"c"
(msr)
7
);
8
}
9
10
uint64_t
read_msr
(
uint32_t
msr) {
11
uint64_t
lo, hi;
12
asm
volatile
(
13
"rdmsr"
:
14
"=a"
(lo),
"=d"
(hi) :
15
"c"
(msr)
16
);
17
18
return
(hi << 32) | lo;
19
}
uint32_t
unsigned int uint32_t
Definition
arch.h:11
uint64_t
unsigned long uint64_t
Definition
arch.h:14
read_msr
uint64_t read_msr(uint32_t msr)
Definition
msr.c:10
write_msr
void write_msr(uint32_t msr, uint64_t value)
Definition
msr.c:3
msr.h
src
kernel
arch
amd64
msr.c
Generated on Tue Apr 23 2024 20:41:16 for LF OS by
1.9.8