*参照元 [#ufb9d33d] #backlinks *説明 [#xe762ebb] -パス: [[linux-4.4.1/mm/memory.c]] -FIXME: これは何? --説明 **引数 [#m7b2b810] -struct mm_struct *mm -- --[[linux-4.4.1/mm_struct]] -pgd_t *pgd -- --[[linux-4.4.1/pgd_t]] -unsigned long addr -- -unsigned long end -- -unsigned long pfn -- -pgprot_t prot -- --[[linux-4.4.1/pgprot_t]] **返り値 [#o258e107] -int -- **参考 [#gdfa5c1b] *実装 [#xcb6b8c3] static inline int remap_pud_range(struct mm_struct *mm, pgd_t *pgd, unsigned long addr, unsigned long end, unsigned long pfn, pgprot_t prot) { pud_t *pud; unsigned long next; pfn -= addr >> PAGE_SHIFT; pud = pud_alloc(mm, pgd, addr); - --[[linux-4.4.1/PAGE_SHIFT]] --[[linux-4.4.1/pud_alloc()]] if (!pud) return -ENOMEM; do { next = pud_addr_end(addr, end); - --[[linux-4.4.1/pud_addr_end()]] if (remap_pmd_range(mm, pud, addr, next, pfn + (addr >> PAGE_SHIFT), prot)) return -ENOMEM; - --[[linux-4.4.1/remap_pmd_range()]] } while (pud++, addr = next, addr != end); return 0; } *コメント [#md6207ed]