2016-07-01から1ヶ月間の記事一覧
概要 ページグローバルディレクトリの仮想アドレスを取得する 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる CONFIG_PGTABLE_LEVELSが3を超える場合 pgd_val()でページグローバルディレクトリの値を取得し、その値とPTE_PFN_MASKの論理積…
概要 ページアッパーディレクトリの仮想アドレスを取得する 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる CONFIG_PGTABLE_LEVELSが2を超える場合 pud_val()でページアッパーディレクトリの値を取得し、その値とpud_pfn_mask()で取得した…
概要 ページミドルディレクトリの値を返す 詳細 pmd_t型の値valを引数として受け取り、CONFIG_PARAVIRTと__PAGETABLE_PMD_FOLDED、CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる CONFIG_PARAVIRTが有効でCONFIG_PGTABLE_LEVELSが3以上 PVOP_CA…
概要 ページミドルディレクトリの仮想アドレスを取得する 詳細 pmd_val()でページミドルディレクトリの値を取得し、その値とpmd_pfn_mask()で取得したページミドルディレクトリのマスク値との論理積を求めることでページミドルディレクトリの物理アドレスを…
概要 ページミドルディレクトリのアドレスマスクを取得する 詳細 native_pmd_val()でページミドルディレクトリの値を取得し、_PAGE_PSEフラグが立っていた場合はPATが有効なためPHYSICAL_PMD_PAGE_MASKを、それ以外の場合はPTE_PFN_MASKを返す
概要 ページアッパーディレクトリのアドレスマスクを取得する 詳細 native_pud_val()でページアッパーディレクトリの値を取得し、_PAGE_PSEフラグが立っていた場合はPATが有効なためPHYSICAL_PUD_PAGE_MASKを、それ以外の場合はPTE_PFN_MASKを返す
概要 ページテーブルエントリ(PTE)のフラグを示すマクロ 詳細 bit番号 マクロ フラグ 0 _PAGE_PRESENT 0: 物理メモリに存在しない1: 存在する 1 _PAGE_RW 0: R ONLY1: R/W 2 _PAGE_USER 0: カーネルモード1: ユーザーモード 3 _PAGE_PWT 0: キャッシュのライ…
概要 ページグローバルディレクトリが無効なアドレスか確認する 詳細 PTRS_PER_PUDとCONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる PTRS_PER_PUDの値が1以上の場合 pgd_val()でページグローバルディレクトリのアドレスを取得し、取得したアド…
概要 ページアッパーディレクトリのアドレスが無効なアドレスか確認する 詳細 PTRS_PER_PMDとCONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる PTRS_PER_PMDの値が1以下の場合 pud_val()でページアッパーディレクトリのアドレスを取得し、取得し…
概要 ページミドルディレクトリのアドレスが無効なアドレスか確認する 詳細 native_pmd_val()で取得したページミドルディレクトリの値が0なら1、それ以外の場合は0を返す
概要 ページミドルディレクトリのアドレスを返す 詳細 CONFIG_PGTABLE_LEVELSの値によって以下のように処理が異なる CONFIG_PGTABLE_LEVELSが2を超える場合 pmd_t型の値をpmdval_t型に変換して返す それ以外 native_pgd_val()でページグローバルディレクトリ…
概要 pmdval_t型の値をpmd_t型に変換する 詳細 _ CONFIG_PARAVIRTとCONFIG_PGTABLE_LEVELS、__PAGETABLE_PMD_FOLDED_の値によって以下のように処理が異なる CONFIG_PARAVIRTが定義されていてCONFIG_PGTABLE_LEVELSの値が3以上の場合 PVOP_CALLEEx()にvalが32…
概要 pmdval_t型の値をpmd_t_型に変換する 詳細 pmdval_t型の値valを引数として受け取り、valを値とするpmd_t_型の値を返す