*参照元 [#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]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS