2016-07-13 アドレッシング - pud_page_vaddr() address 概要 ページアッパーディレクトリの仮想アドレスを取得する 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる CONFIG_PGTABLE_LEVELSが2を超える場合 pud_val()でページアッパーディレクトリの値を取得し、その値とpud_pfn_mask()で取得したページグローバルディレクトリのマスク値との論理積を求めることでページアッパーディレクトリの物理アドレスを算出する 算出した物理アドレスを__va()で仮想アドレスに変換する それ以外 pmd_page_vaddr()でページミドルディレクトリの仮想アドレスを取得する ページアッパーディレクトリが存在しないためページミドルディレクトリと同じ値になる