[PATCH 5 of 8] x86: page.h: move pa and va related things
# HG changeset patch # User Jeremy Fitzhardinge <[EMAIL PROTECTED]> # 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 <[EMAIL PROTECTED]> --- include/asm-x86/page.h| 24 include/asm-x86/page_32.h | 11 --- include/asm-x86/page_64.h | 13 - 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h --- a/include/asm-x86/page.h +++ b/include/asm-x86/page.h @@ -79,6 +79,9 @@ #ifndef __ASSEMBLY__ 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(unsi #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 @@ -299,6 +309,20 @@ static inline pmdval_t native_pmd_val(pm #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__ */ diff --git a/include/asm-x86/page_32.h b/include/asm-x86/page_32.h --- a/include/asm-x86/page_32.h +++ b/include/asm-x86/page_32.h @@ -29,18 +29,7 @@ extern int page_is_ram(unsigned long pag #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 #include diff --git a/include/asm-x86/page_64.h b/include/asm-x86/page_64.h --- a/include/asm-x86/page_64.h +++ b/include/asm-x86/page_64.h @@ -16,20 +16,7 @@ extern unsigned long phys_base; #include -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) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 5 of 8] x86: page.h: move pa and va related things
# HG changeset patch # User Jeremy Fitzhardinge [EMAIL PROTECTED] # 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 [EMAIL PROTECTED] --- include/asm-x86/page.h| 24 include/asm-x86/page_32.h | 11 --- include/asm-x86/page_64.h | 13 - 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h --- a/include/asm-x86/page.h +++ b/include/asm-x86/page.h @@ -79,6 +79,9 @@ #ifndef __ASSEMBLY__ 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(unsi #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(pm #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__ */ diff --git a/include/asm-x86/page_32.h b/include/asm-x86/page_32.h --- a/include/asm-x86/page_32.h +++ b/include/asm-x86/page_32.h @@ -29,18 +29,7 @@ extern int page_is_ram(unsigned long pag #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 diff --git a/include/asm-x86/page_64.h b/include/asm-x86/page_64.h --- a/include/asm-x86/page_64.h +++ b/include/asm-x86/page_64.h @@ -16,20 +16,7 @@ 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) -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/