diff options
Diffstat (limited to 'msr.h')
-rw-r--r-- | msr.h | 25 |
1 files changed, 0 insertions, 25 deletions
@@ -1,25 +0,0 @@ -// SYSCALL and SYSRET registers -#define MSR_STAR 0xc0000081 -#define MSR_LSTAR 0xc0000082 -#define MSR_CSTAR 0xc0000083 -#define MSR_SFMASK 0xc0000084 - -// GS -#define MSR_GS_BASE 0xc0000101 -#define MSR_GS_KERNBASE 0xc0000102 - -static inline uint64 -readmsr(uint32 msr) -{ - uint32 hi, lo; - __asm volatile("rdmsr" : "=d" (hi), "=a" (lo) : "c" (msr)); - return ((uint64) lo) | (((uint64) hi) << 32); -} - -static inline void -writemsr(uint64 msr, uint64 val) -{ - uint32 lo = val & 0xffffffff; - uint32 hi = val >> 32; - __asm volatile("wrmsr" : : "c" (msr), "a" (lo), "d" (hi) : "memory"); -} |