linuxのメモ

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

2016-10-18から1日間の記事一覧

アドレッシング - pud_present()

概要 ページアッパーディレクトリが物理メモリ上に存在するか確認する 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる 2以下 1を返す それ以外 pud_flags()で取得したページアッパーディレクトリのフラグと_PAGE_PRESENTの論理積の結果を…

アドレッシング - pud_flags()

概要 ページアッパーディレクトリに設定されているフラグを取得する 詳細 native_pud_val()で取得したページアッパーディレクトリのアドレスとpud_flags_mask()で取得したページアッパーディレクトリのフラグマスクの論理積を返す

アドレッシング - pud_flags_mask()

概要 ページアッパーディレクトリのフラグマスクを取得する 詳細 pud_pfn_mask()で取得したページアッパーディレクトリのアドレスマスクを反転した値を返すため、アドレス以外のbit値をフラグとして利用できるものとする

アドレッシング - pud_large()

概要 ページアッパーディレクトリのページサイズ拡張(PSE)の状態を確認する 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる 2以下 0を返す それ以外 pud_val()でページアッパーディレクトリの値を取得し、取得した値の_PAGE_PSEと_PAGE_PR…

アドレッシング - pud_offset()

概要 ページアッパーディレクトリのエントリに該当するアドレスを取得する 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる CONFIG_PGTABLE_LEVELSの値が3を超える場合 pgd_page_vaddr()で取得したページグローバルディレクトリの仮想アド…

アドレッシング - pud_index()

概要 仮想アドレスからページグローバルディレクトリのインデックスを取得する 詳細 unsigned long型で表されるaddressをPUD_SHIFT分右にシフトた値とPUDのエントリ数であるPTRS_PER_PUDから1を引いた値の論理積を取ることで、ページグローバルディレクトリ…