linuxのメモ

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

アドレッシング - pgd_none()

概要

ページグローバルディレクトリが無効なアドレスか確認する

詳細

PTRS_PER_PUDCONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる

  • PTRS_PER_PUDの値が1以上の場合
    • pgd_val()でページグローバルディレクトリのアドレスを取得し、取得したアドレスを__pud()pud_t型の値に変換する
    • 変換した値が無効なアドレスかpud_none()で確認する
    • ページグローバルディレクトリが存在しないためページアッパーディレクトリの存在確認をするようになっている
  • CONFIG_PGTABLE_LEVELSの値が3を超えるている場合
  • それ以外
    • 常に0を返す