1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#ifndef CPU_X86_ASM_MSR_H #define CPU_X86_ASM_MSR_H static inline uint64_t rdmsr(unsigned index) { uint64_t result; asm volatile ( "rdmsr" : "=A" (result) : "c" (index) ); return result; } static inline void wrmsr(unsigned index, uint64_t msr) { asm volatile ( "wrmsr" : /* No outputs */ : "c" (index), "A" (msr) ); } #endif /* CPU_X86_ASM_MSR_H */