アドレッシング - __pmd()
概要
pmdval_t型の値をpmd_t型に変換する
詳細
_ CONFIG_PARAVIRTとCONFIG_PGTABLE_LEVELS、__PAGETABLE_PMD_FOLDED_の値によって以下のように処理が異なる
- CONFIG_PARAVIRTが定義されていてCONFIG_PGTABLE_LEVELSの値が3以上の場合
- PVOP_CALLEEx()にvalが32bitの場合は引数を1つ、64bitモードの場合は第1引数valの下位32bitを、第2引数に上位32bitの2つの値を渡してpv_mmu_ops.make_pmd*1を実行しpmdval_t型の値を取得する
- 取得した値をpmd_t型の値に変換して返す
- CONFIG_PARAVIRTと__PAGETABLE_PMD_FOLDEDが未定義の場合
- native_make_pmd()でpmdval_t型の値をpmd_t型に変換して返す
- 上記以外の場合
- __pud()でvalをpud_t型に変換した値をpmd_t型に変換して返す