linuxのメモ

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

アドレッシング - pud_none()

概要

ページアッパーディレクトリのアドレスが無効なアドレスか確認する

詳細

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

  • PTRS_PER_PMDの値が1以下の場合
    • pud_val()でページアッパーディレクトリのアドレスを取得し、取得したアドレスを__pmd()pmd_t型の値に変換する
    • 変換した値が無効なアドレスかpmd_none()で確認する
    • ページアッパーディレクトリが存在しないためページミドルディレクトリの存在確認をするようになっている
  • CONFIG_PGTABLE_LEVELSの値が2を超えるている場合
  • それ以外
    • 常に0を返す