*参照元 [#e2faba39] #backlinks *説明 [#m22686fa] -パス: [[linux-4.4.1/lib/ioremap.c]] -FIXME: これは何? --説明 **引数 [#c95b51a5] - -- **返り値 [#u3192ecd] - -- **参考 [#da72efdf] *実装 [#k3402924] static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, phys_addr_t phys_addr, pgprot_t prot) { pmd_t *pmd; unsigned long next; phys_addr -= addr; pmd = pmd_alloc(&init_mm, pud, addr); if (!pmd) return -ENOMEM; do { next = pmd_addr_end(addr, end); if (ioremap_pmd_enabled() && ((next - addr) == PMD_SIZE) && IS_ALIGNED(phys_addr + addr, PMD_SIZE)) { if (pmd_set_huge(pmd, phys_addr + addr, prot)) continue; } if (ioremap_pte_range(pmd, addr, next, phys_addr + addr, prot)) return -ENOMEM; } while (pmd++, addr = next, addr != end); return 0; } *コメント [#gaacbf7c]