x86: page.h: move pa and va related things
authorJeremy Fitzhardinge <jeremy@goop.org>
Wed, 30 Jan 2008 12:32:43 +0000 (13:32 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 30 Jan 2008 12:32:43 +0000 (13:32 +0100)
# HG changeset patch
# User Jeremy Fitzhardinge <jeremy@xensource.com>
# Date 1199319656 28800
# Node ID d617b72a0cc9d14bde2087d065c36d4ed3265761
# Parent  3bd7db6e85e66e7f3362874802df26a82fcb2d92
x86: page.h: move pa and va related things

Move and unify the virtual<->physical address space conversion
functions.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/asm-x86/page.h
include/asm-x86/page_32.h
include/asm-x86/page_64.h

index ef393c3df902556dfd6d3aefd1ba4fadd6b53d10..9830eeb571733e2a9600a1dfce804ef663ea16ae 100644 (file)
@@ -80,6 +80,9 @@
 void clear_page(void *page);
 void copy_page(void *to, void *from);
 
+extern unsigned long __phys_addr(unsigned long);
+#define __phys_reloc_hide(x)   (x)
+
 /*
  * These are used to make use of C type-checking..
  */
@@ -174,6 +177,13 @@ static inline pte_t native_make_pte(unsigned long val)
 #endif
 
 #ifndef __ASSEMBLY__
+#define __phys_addr(x)         ((x)-PAGE_OFFSET)
+#define __phys_reloc_hide(x)   RELOC_HIDE((x), 0)
+
+#ifdef CONFIG_FLATMEM
+#define pfn_valid(pfn)         ((pfn) < max_mapnr)
+#endif /* CONFIG_FLATMEM */
+
 #ifdef CONFIG_X86_USE_3DNOW
 #include <asm/mmx.h>
 
@@ -299,6 +309,20 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
 
 #endif /* CONFIG_PARAVIRT */
 
+#define __pa(x)                __phys_addr((unsigned long)(x))
+/* __pa_symbol should be used for C visible symbols.
+   This seems to be the official gcc blessed way to do such arithmetic. */
+#define __pa_symbol(x) __pa(__phys_reloc_hide((unsigned long)(x)))
+
+#define __va(x)                        ((void *)((unsigned long)(x)+PAGE_OFFSET))
+
+#define __boot_va(x)           __va(x)
+#define __boot_pa(x)           __pa(x)
+
+#define virt_to_page(kaddr)    pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
+#define pfn_to_kaddr(pfn)      __va((pfn) << PAGE_SHIFT)
+#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
+
 #endif /* __ASSEMBLY__ */
 
 
index 2d60661ab34059e38a6275b5e63535ff5456800a..a27424a2ee0dde221aa4b04207ac921a7a1751bb 100644 (file)
@@ -29,18 +29,7 @@ extern int page_is_ram(unsigned long pagenr);
 
 #define VMALLOC_RESERVE                ((unsigned long)__VMALLOC_RESERVE)
 #define MAXMEM                 (-__PAGE_OFFSET-__VMALLOC_RESERVE)
-#define __pa(x)                        ((unsigned long)(x)-PAGE_OFFSET)
-/* __pa_symbol should be used for C visible symbols.
-   This seems to be the official gcc blessed way to do such arithmetic. */
-#define __pa_symbol(x)          __pa(RELOC_HIDE((unsigned long)(x),0))
-#define __va(x)                        ((void *)((unsigned long)(x)+PAGE_OFFSET))
-#define pfn_to_kaddr(pfn)      __va((pfn) << PAGE_SHIFT)
-#ifdef CONFIG_FLATMEM
-#define pfn_valid(pfn)         ((pfn) < max_mapnr)
-#endif /* CONFIG_FLATMEM */
-#define virt_to_page(kaddr)    pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
-
-#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
+
 
 #include <asm-generic/memory_model.h>
 #include <asm-generic/page.h>
index f8a07bf54c3c28952b97f8f7c91631ee38769964..7094684270a683223c40501b5a41d3d960a2e45f 100644 (file)
@@ -16,21 +16,8 @@ extern unsigned long phys_base;
 
 #include <asm/bug.h>
 
-extern unsigned long __phys_addr(unsigned long);
-
 #endif /* __ASSEMBLY__ */
 
-#define __pa(x)                __phys_addr((unsigned long)(x))
-#define __pa_symbol(x) __phys_addr((unsigned long)(x))
-
-#define __va(x)                        ((void *)((unsigned long)(x)+PAGE_OFFSET))
-#define __boot_va(x)           __va(x)
-#define __boot_pa(x)           __pa(x)
-
-#define virt_to_page(kaddr)    pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
-#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
-#define pfn_to_kaddr(pfn)      __va((pfn) << PAGE_SHIFT)
-
 #define __HAVE_ARCH_GATE_AREA 1        
 #define vmemmap ((struct page *)VMEMMAP_START)