- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#a26b2e5d]
#backlinks
*説明 [#a1d06f23]
-パス: [[linux-4.4.1/]]
-FIXME: これは何?
--説明
**引数 [#q527db35]
-struct mm_struct *mm
--
--[[linux-4.4.1/mm_struct]]
-pud_t *pud
--
--[[linux-4.4.1/pud_t]]
-unsigned long addr
--
-unsigned long end
--
-unsigned long pfn
--
-pgprot_t prot
--
--[[linux-4.4.1/pgprot_t]]
**返り値 [#wa01fd4b]
-int
--
**参考 [#j7637401]
*実装 [#w273b3b9]
static inline int remap_pmd_range(struct mm_struct *mm, pud_t *pud,
unsigned long addr, unsigned long end,
unsigned long pfn, pgprot_t prot)
{
pmd_t *pmd;
unsigned long next;
pfn -= addr >> PAGE_SHIFT;
pmd = pmd_alloc(mm, pud, addr);
if (!pmd)
return -ENOMEM;
-
--[[linux-4.4.1/PAGE_SHIFT]]
--[[linux-4.4.1/pmd_alloc()]]
VM_BUG_ON(pmd_trans_huge(*pmd));
-
--[[linux-4.4.1/VM_BUG_ON()]]
--[[linux-4.4.1/pmd_trans_huge()]]
do {
next = pmd_addr_end(addr, end);
-
--[[linux-4.4.1/pmd_addr_end()]]
if (remap_pte_range(mm, pmd, addr, next,
pfn + (addr >> PAGE_SHIFT), prot))
return -ENOMEM;
-
--[[linux-4.4.1/remap_pte_range()]]
} while (pmd++, addr = next, addr != end);
return 0;
}
*コメント [#kab5793e]