linuxのメモ

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

アドレッシング - pud_val()

概要

ページアッパーディレクトリの値を返す

詳細

pud_t型の値valを引数として受け取り、CONFIG_PARAVIRT__PAGETABLE_PUD_FOLDEDCONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる

  • CONFIG_PARAVIRTが有効でCONFIG_PGTABLE_LEVELSの値が4
    • PVOP_CALLEEx()valが32bitの場合は引数を1つ、64bitモードの場合は第1引数valの下位32bitを、第2引数に上位32bitの2つの値を渡してpv_mmu_ops.pud_val*1を実行しpudval_t型の値を返す
  • CONFIG_PARAVIRTが無効で__PAGETABLE_PUD_FOLDEDが有効
  • それ以外

*1:この関数はコンパイル時にPTE_IDENTで初期化される