- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#hb2e42c0]
#backlinks
*説明 [#n6397bee]
-パス: [[linux-4.4.1/]]
-パス: [[linux-4.4.1/lib/ioremap.c]]
-FIXME: これは何?
--説明
**引数 [#x2c8d29a]
-pmd_t *pmd
--
--[[linux-4.4.1/pmd_t]]
-unsigned long addr
--
-unsigned long end
--
-phys_addr_t phys_addr
--
--[[linux-4.4.1/phys_addr_t]]
-pgprot_t prot
--
--[[linux-4.4.1/pgprot_t]]
**返り値 [#da4be3f3]
-int
--
**参考 [#x2d307c1]
*実装 [#r3937e9f]
static int ioremap_pte_range(pmd_t *pmd, unsigned long addr,
unsigned long end, phys_addr_t phys_addr, pgprot_t prot)
{
pte_t *pte;
u64 pfn;
-
--[[linux-4.4.1/pte_t]]
pfn = phys_addr >> PAGE_SHIFT;
pte = pte_alloc_kernel(pmd, addr);
if (!pte)
return -ENOMEM;
-
--[[linux-4.4.1/pte_alloc_kernel()]]
do {
BUG_ON(!pte_none(*pte));
-
--[[linux-4.4.1/BUG_ON()]]
--[[linux-4.4.1/pte_none()]]
set_pte_at(&init_mm, addr, pte, pfn_pte(pfn, prot));
pfn++;
-
--[[linux-4.4.1/set_pte_at()]]
--[[linux-4.4.1/init_mm(global)]]
--[[linux-4.4.1/pfn_pte()]]
} while (pte++, addr += PAGE_SIZE, addr != end);
return 0;
}
*コメント [#c9f9a160]