diff options
author | Robert Morris <[email protected]> | 2019-05-31 09:45:59 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-05-31 09:45:59 -0400 |
commit | 2ec1959fd1016a18ef3b2d154ce7076be8f237e4 (patch) | |
tree | 1aa75252085964283b3a2c735771f4da02346517 /msr.h | |
parent | 0f90388c893d1924e89e2e4d2187eda0004e9d73 (diff) | |
download | xv6-labs-2ec1959fd1016a18ef3b2d154ce7076be8f237e4.tar.gz xv6-labs-2ec1959fd1016a18ef3b2d154ce7076be8f237e4.tar.bz2 xv6-labs-2ec1959fd1016a18ef3b2d154ce7076be8f237e4.zip |
fork/wait/exit work
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"); -} |