Skip to content

Commit

Permalink
sh: Assembly friendly __pa and __va definitions
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
mfleming committed Apr 25, 2010
1 parent 4a6feab commit 7c4584d
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions arch/sh/include/asm/page.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,18 @@ typedef struct page *pgtable_t;
* added or subtracted as required.
*/
#ifdef CONFIG_PMB
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET+__MEMORY_START)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET-__MEMORY_START))
#define ___pa(x) ((x)-PAGE_OFFSET+__MEMORY_START)
#define ___va(x) ((x)+PAGE_OFFSET-__MEMORY_START)
#else
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
#define ___pa(x) ((x)-PAGE_OFFSET)
#define ___va(x) ((x)+PAGE_OFFSET)
#endif

#ifndef __ASSEMBLY__
#define __pa(x) ___pa((unsigned long)x)
#define __va(x) (void *)___va((unsigned long)x)
#endif /* !__ASSEMBLY__ */

#ifdef CONFIG_UNCACHED_MAPPING
#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start)
#define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET)
Expand Down

0 comments on commit 7c4584d

Please sign in to comment.