#include "common/msr.h" uint64_t GetMSR(uint32_t msr) { uint32_t lo, hi; asm("rdmsr" : "=a"(lo), "=d"(hi) : "c"(msr)); return (static_cast(hi) << 32) | lo; } void SetMSR(uint32_t msr, uint64_t val) { uint32_t lo = static_cast(val); uint32_t hi = val >> 32; asm("wrmsr" ::"a"(lo), "d"(hi), "c"(msr)); }