diff options
Diffstat (limited to 'arch/sh/include/asm/page.h')
-rw-r--r-- | arch/sh/include/asm/page.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/arch/sh/include/asm/page.h b/arch/sh/include/asm/page.h index 3accdc5ab12..8237d9f53e5 100644 --- a/arch/sh/include/asm/page.h +++ b/arch/sh/include/asm/page.h | |||
@@ -50,13 +50,22 @@ extern unsigned long shm_align_mask; | |||
50 | extern unsigned long max_low_pfn, min_low_pfn; | 50 | extern unsigned long max_low_pfn, min_low_pfn; |
51 | extern unsigned long memory_start, memory_end; | 51 | extern unsigned long memory_start, memory_end; |
52 | 52 | ||
53 | #ifdef CONFIG_UNCACHED_MAPPING | ||
54 | extern unsigned long uncached_start, uncached_end; | ||
55 | |||
56 | extern int virt_addr_uncached(unsigned long kaddr); | ||
57 | extern void uncached_init(void); | ||
58 | #else | ||
59 | #define virt_addr_uncached(kaddr) (0) | ||
60 | #define uncached_init() do { } while (0) | ||
61 | #endif | ||
62 | |||
53 | static inline unsigned long | 63 | static inline unsigned long |
54 | pages_do_alias(unsigned long addr1, unsigned long addr2) | 64 | pages_do_alias(unsigned long addr1, unsigned long addr2) |
55 | { | 65 | { |
56 | return (addr1 ^ addr2) & shm_align_mask; | 66 | return (addr1 ^ addr2) & shm_align_mask; |
57 | } | 67 | } |
58 | 68 | ||
59 | |||
60 | #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) | 69 | #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) |
61 | extern void copy_page(void *to, void *from); | 70 | extern void copy_page(void *to, void *from); |
62 | 71 | ||
@@ -135,6 +144,14 @@ typedef struct page *pgtable_t; | |||
135 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | 144 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) |
136 | #endif | 145 | #endif |
137 | 146 | ||
147 | #ifdef CONFIG_UNCACHED_MAPPING | ||
148 | #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start) | ||
149 | #define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET) | ||
150 | #else | ||
151 | #define UNCAC_ADDR(addr) ((addr)) | ||
152 | #define CAC_ADDR(addr) ((addr)) | ||
153 | #endif | ||
154 | |||
138 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | 155 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) |
139 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) | 156 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) |
140 | 157 | ||