diff options
author | Matt Fleming <matt@console-pimps.org> | 2010-04-24 06:12:12 -0400 |
---|---|---|
committer | Matt Fleming <matt@console-pimps.org> | 2010-04-25 15:44:22 -0400 |
commit | 7c4584d39a8a144c60adaf4cf998c3233b6683d9 (patch) | |
tree | cae1bdc6dd8e29633399a850e19c1b853dd0a43d /arch/sh/include | |
parent | 4a6feab0ee5240c4bd5378d9f8a46b85718c68a7 (diff) |
sh: Assembly friendly __pa and __va definitions
This patch defines ___pa and ___va which return the physical and virtual
address of an address, respectively. These macros are suitable for
calling from assembly because they don't include the C casts required by
__pa and __va.
Signed-off-by: Matt Fleming <matt@console-pimps.org>
Diffstat (limited to 'arch/sh/include')
-rw-r--r-- | arch/sh/include/asm/page.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/sh/include/asm/page.h b/arch/sh/include/asm/page.h index d71feb359304..0152c040f6c3 100644 --- a/arch/sh/include/asm/page.h +++ b/arch/sh/include/asm/page.h | |||
@@ -128,13 +128,18 @@ typedef struct page *pgtable_t; | |||
128 | * added or subtracted as required. | 128 | * added or subtracted as required. |
129 | */ | 129 | */ |
130 | #ifdef CONFIG_PMB | 130 | #ifdef CONFIG_PMB |
131 | #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET+__MEMORY_START) | 131 | #define ___pa(x) ((x)-PAGE_OFFSET+__MEMORY_START) |
132 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET-__MEMORY_START)) | 132 | #define ___va(x) ((x)+PAGE_OFFSET-__MEMORY_START) |
133 | #else | 133 | #else |
134 | #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) | 134 | #define ___pa(x) ((x)-PAGE_OFFSET) |
135 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | 135 | #define ___va(x) ((x)+PAGE_OFFSET) |
136 | #endif | 136 | #endif |
137 | 137 | ||
138 | #ifndef __ASSEMBLY__ | ||
139 | #define __pa(x) ___pa((unsigned long)x) | ||
140 | #define __va(x) (void *)___va((unsigned long)x) | ||
141 | #endif /* !__ASSEMBLY__ */ | ||
142 | |||
138 | #ifdef CONFIG_UNCACHED_MAPPING | 143 | #ifdef CONFIG_UNCACHED_MAPPING |
139 | #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start) | 144 | #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start) |
140 | #define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET) | 145 | #define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET) |