*参照元 [#o0897292] #backlinks *説明 [#r00877f2] -パス: [[linux-4.4.1/lib/ioremap.c]] -FIXME: これは何? --説明 **引数 [#mc3dff01] -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]] **返り値 [#y53f257e] -int -- **参考 [#t229ffae] *実装 [#fe20ac50] int ioremap_page_range(unsigned long addr, unsigned long end, phys_addr_t phys_addr, pgprot_t prot) { pgd_t *pgd; unsigned long start; unsigned long next; int err; - --[[linux-4.4.1/pgd_t]] BUG_ON(addr >= end); - --[[linux-4.4.1/BUG_ON()]] start = addr; phys_addr -= addr; pgd = pgd_offset_k(addr); - --[[linux-4.4.1/pgd_offset_k()]] do { next = pgd_addr_end(addr, end); err = ioremap_pud_range(pgd, addr, next, phys_addr+addr, prot); if (err) break; - --[[linux-4.4.1/pgd_addr_end()]] --[[linux-4.4.1/ioremap_pud_range()]] } while (pgd++, addr = next, addr != end); flush_cache_vmap(start, end); - --[[linux-4.4.1/flush_cache_vmap()]] return err; } EXPORT_SYMBOL_GPL(ioremap_page_range); - --[[linux-4.4.1/EXPORT_SYMBOL_GPL()]] *コメント [#y682e064]