linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

MSR - EAX_EDX_RET()

概要

MSRの返り値を定義する

詳細

このマクロではvallowhighの3つの引数を受け取り、CONFIG_X86_64が有効な場合と無効な場合では以下のように処理が異なる

  • 有効な場合
    • loweaxに、highedxにそれぞれ出力変数として割り当てる
  • 無効な場合
    • valを出力変数としてeaxedxに割り当てる
    • 32bitレジスタを2つ組み合わせて64bitのlong long型を作る

全ての場合において"="制約修飾子をつけているためアセンブラ命令からの出力を受け取る