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

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