aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/cacheflush.h
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-08-21 16:20:57 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-08-21 16:20:57 +0900
commitf9bd71f255b4349c4f9f596863161fd5182f67fa (patch)
tree5ffc0f17408bfe917a10f5297c81e932f9b27f67 /arch/sh/include/asm/cacheflush.h
parentsh: Use local TLB flush for get_mmu_context() ASID exhaustion. (diff)
downloadlinux-dev-f9bd71f255b4349c4f9f596863161fd5182f67fa.tar.xz
linux-dev-f9bd71f255b4349c4f9f596863161fd5182f67fa.zip
sh: Kill off unused cpu/cacheflush.h.
All CPU-specific overloads are done at runtime now, so this common header can go away and simply be folded back in to asm/ version. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/asm/cacheflush.h')
-rw-r--r--arch/sh/include/asm/cacheflush.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/arch/sh/include/asm/cacheflush.h b/arch/sh/include/asm/cacheflush.h
index 25b7f46494de..32299b7c2b48 100644
--- a/arch/sh/include/asm/cacheflush.h
+++ b/arch/sh/include/asm/cacheflush.h
@@ -4,7 +4,37 @@
#ifdef __KERNEL__
#include <linux/mm.h>
-#include <cpu/cacheflush.h>
+
+/*
+ * Cache flushing:
+ *
+ * - flush_cache_all() flushes entire cache
+ * - flush_cache_mm(mm) flushes the specified mm context's cache lines
+ * - flush_cache_dup mm(mm) handles cache flushing when forking
+ * - flush_cache_page(mm, vmaddr, pfn) flushes a single page
+ * - flush_cache_range(vma, start, end) flushes a range of pages
+ *
+ * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache
+ * - flush_icache_range(start, end) flushes(invalidates) a range for icache
+ * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache
+ * - flush_cache_sigtramp(vaddr) flushes the signal trampoline
+ */
+extern void (*flush_cache_all)(void);
+extern void (*flush_cache_mm)(struct mm_struct *mm);
+extern void (*flush_cache_dup_mm)(struct mm_struct *mm);
+extern void (*flush_cache_page)(struct vm_area_struct *vma,
+ unsigned long addr, unsigned long pfn);
+extern void (*flush_cache_range)(struct vm_area_struct *vma,
+ unsigned long start, unsigned long end);
+extern void (*flush_dcache_page)(struct page *page);
+extern void (*flush_icache_range)(unsigned long start, unsigned long end);
+extern void (*flush_icache_page)(struct vm_area_struct *vma,
+ struct page *page);
+extern void (*flush_cache_sigtramp)(unsigned long address);
+
+extern void (*__flush_wback_region)(void *start, int size);
+extern void (*__flush_purge_region)(void *start, int size);
+extern void (*__flush_invalidate_region)(void *start, int size);
#define ARCH_HAS_FLUSH_ANON_PAGE
extern void __flush_anon_page(struct page *page, unsigned long);