diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-01-30 07:32:43 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:43 -0500 |
commit | 98fd5aee348f0420afd1c636790d50aaaec6ceec (patch) | |
tree | c2e0e421ce7cfb809b643a6934e19f82e2c1ceae /include/asm-x86/page.h | |
parent | 6724a1d2fc6b40d55f232b8dacc12a915878bdc7 (diff) |
x86: page.h: move pa and va related things
# 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>
Diffstat (limited to 'include/asm-x86/page.h')
-rw-r--r-- | include/asm-x86/page.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h index ef393c3df902..9830eeb57173 100644 --- a/include/asm-x86/page.h +++ b/include/asm-x86/page.h | |||
@@ -80,6 +80,9 @@ | |||
80 | void clear_page(void *page); | 80 | void clear_page(void *page); |
81 | void copy_page(void *to, void *from); | 81 | void copy_page(void *to, void *from); |
82 | 82 | ||
83 | extern unsigned long __phys_addr(unsigned long); | ||
84 | #define __phys_reloc_hide(x) (x) | ||
85 | |||
83 | /* | 86 | /* |
84 | * These are used to make use of C type-checking.. | 87 | * These are used to make use of C type-checking.. |
85 | */ | 88 | */ |
@@ -174,6 +177,13 @@ static inline pte_t native_make_pte(unsigned long val) | |||
174 | #endif | 177 | #endif |
175 | 178 | ||
176 | #ifndef __ASSEMBLY__ | 179 | #ifndef __ASSEMBLY__ |
180 | #define __phys_addr(x) ((x)-PAGE_OFFSET) | ||
181 | #define __phys_reloc_hide(x) RELOC_HIDE((x), 0) | ||
182 | |||
183 | #ifdef CONFIG_FLATMEM | ||
184 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
185 | #endif /* CONFIG_FLATMEM */ | ||
186 | |||
177 | #ifdef CONFIG_X86_USE_3DNOW | 187 | #ifdef CONFIG_X86_USE_3DNOW |
178 | #include <asm/mmx.h> | 188 | #include <asm/mmx.h> |
179 | 189 | ||
@@ -299,6 +309,20 @@ static inline pmdval_t native_pmd_val(pmd_t pmd) | |||
299 | 309 | ||
300 | #endif /* CONFIG_PARAVIRT */ | 310 | #endif /* CONFIG_PARAVIRT */ |
301 | 311 | ||
312 | #define __pa(x) __phys_addr((unsigned long)(x)) | ||
313 | /* __pa_symbol should be used for C visible symbols. | ||
314 | This seems to be the official gcc blessed way to do such arithmetic. */ | ||
315 | #define __pa_symbol(x) __pa(__phys_reloc_hide((unsigned long)(x))) | ||
316 | |||
317 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | ||
318 | |||
319 | #define __boot_va(x) __va(x) | ||
320 | #define __boot_pa(x) __pa(x) | ||
321 | |||
322 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | ||
323 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | ||
324 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | ||
325 | |||
302 | #endif /* __ASSEMBLY__ */ | 326 | #endif /* __ASSEMBLY__ */ |
303 | 327 | ||
304 | 328 | ||