aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-um/pgtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-um/pgtable.h')
-rw-r--r--include/asm-um/pgtable.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/include/asm-um/pgtable.h b/include/asm-um/pgtable.h
index b48e0966ecd7..ed06170e0edd 100644
--- a/include/asm-um/pgtable.h
+++ b/include/asm-um/pgtable.h
@@ -326,14 +326,22 @@ static inline void set_pte(pte_t *pteptr, pte_t pteval)
326} 326}
327#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval) 327#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
328 328
329extern phys_t page_to_phys(struct page *page);
330
331/* 329/*
332 * Conversion functions: convert a page and protection to a page entry, 330 * Conversion functions: convert a page and protection to a page entry,
333 * and a page entry and page directory to the page they refer to. 331 * and a page entry and page directory to the page they refer to.
334 */ 332 */
335 333
336extern pte_t mk_pte(struct page *page, pgprot_t pgprot); 334#define phys_to_page(phys) pfn_to_page(phys_to_pfn(phys))
335#define __virt_to_page(virt) phys_to_page(__pa(virt))
336#define page_to_phys(page) pfn_to_phys(page_to_pfn(page))
337
338#define mk_pte(page, pgprot) \
339 ({ pte_t pte; \
340 \
341 pte_set_val(pte, page_to_phys(page), (pgprot)); \
342 if (pte_present(pte)) \
343 pte_mknewprot(pte_mknewpage(pte)); \
344 pte;})
337 345
338static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 346static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
339{ 347{
@@ -410,8 +418,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
410#endif 418#endif
411#endif 419#endif
412 420
413extern struct page *phys_to_page(const unsigned long phys);
414extern struct page *__virt_to_page(const unsigned long virt);
415#define virt_to_page(addr) __virt_to_page((const unsigned long) addr) 421#define virt_to_page(addr) __virt_to_page((const unsigned long) addr)
416 422
417/* 423/*