patch-2.4.22 linux-2.4.22/include/asm-arm/pgtable.h
Next file: linux-2.4.22/include/asm-arm/proc-armo/locks.h
Previous file: linux-2.4.22/include/asm-arm/pci.h
Back to the patch index
Back to the overall index
- Lines: 82
- Date:
2003-08-25 04:44:43.000000000 -0700
- Orig file:
linux-2.4.21/include/asm-arm/pgtable.h
- Orig date:
2002-08-02 17:39:45.000000000 -0700
diff -urN linux-2.4.21/include/asm-arm/pgtable.h linux-2.4.22/include/asm-arm/pgtable.h
@@ -1,7 +1,7 @@
/*
* linux/include/asm-arm/pgtable.h
*
- * Copyright (C) 2000-2001 Russell King
+ * Copyright (C) 2000-2002 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -11,7 +11,7 @@
#define _ASMARM_PGTABLE_H
#include <linux/config.h>
-#include <asm/arch/memory.h>
+#include <asm/memory.h>
#include <asm/proc-fns.h>
/*
@@ -75,21 +75,13 @@
extern struct page *empty_zero_page;
#define ZERO_PAGE(vaddr) (empty_zero_page)
+#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
+#define pfn_pte(pfn,prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)))
+
#define pte_none(pte) (!pte_val(pte))
#define pte_clear(ptep) set_pte((ptep), __pte(0))
-#ifndef CONFIG_DISCONTIGMEM
-#define pte_page(x) (mem_map + (pte_val((x)) >> PAGE_SHIFT) - \
- (PHYS_OFFSET >> PAGE_SHIFT))
-#else
-/*
- * I'm not happy with this - we needlessly convert a physical address
- * to a virtual one, and then immediately back to a physical address,
- * which, if __va and __pa are expensive causes twice the expense for
- * zero gain. --rmk
- */
-#define pte_page(x) (virt_to_page(__va(pte_val((x)))))
-#endif
+#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))
#define pmd_none(pmd) (!pmd_val(pmd))
#define pmd_present(pmd) (pmd_val(pmd))
@@ -111,13 +103,7 @@
return pte;
}
-#define mk_pte(page,pgprot) \
-({ \
- pte_t __pte; \
- pte_val(__pte) = __pa(page_address(page)) + \
- pgprot_val(pgprot); \
- __pte; \
-})
+#define mk_pte(page,prot) pfn_pte(page_to_pfn(page),prot)
/*
* The "pgd_xxx()" functions here are trivial for a folded two-level
@@ -127,7 +113,7 @@
#define pgd_none(pgd) (0)
#define pgd_bad(pgd) (0)
#define pgd_present(pgd) (1)
-#define pgd_clear(pgdp)
+#define pgd_clear(pgdp) do { } while (0)
#define page_pte_prot(page,prot) mk_pte(page, prot)
#define page_pte(page) mk_pte(page, __pgprot(0))
@@ -176,6 +162,13 @@
extern void pgtable_cache_init(void);
+/*
+ * remap a physical address `phys' of size `size' with page protection `prot'
+ * into virtual address `from'
+ */
+#define io_remap_page_range(from,phys,size,prot) \
+ remap_page_range(from,phys,size,prot)
+
#endif /* !__ASSEMBLY__ */
#endif /* _ASMARM_PGTABLE_H */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)