2008/12/11

RDMSR / WRMSR

// RDMSR
ECXで指定したアドレスのMSRを読み込む.
読み込んだデータはEDX:EAXに格納される.
特権レベル0でのみ実行可能.
(ex)
unsigned low, high;
asm volatile("rdmsr" : "=a"(low), "=d"(high) : "c"(msr_addr));

// WRMSR
ECXで指定したアドレスのMSRにEDX:EAXを書き込む.
特権レベル0でのみ実行可能.
(ex)
asm volatile("wrmsr" : : "c"(msr_addr), "=a"(low), "=d"(high) : "memory");

// Reference
wrmsr()/linux2.6 - LinuxKernelHackJapan
rdmsr()/linux2.6 - LinuxKernelHackJapan

0 件のコメント: