Path: blob/master/arch/m32r/include/asm/cacheflush.h
10818 views
#ifndef _ASM_M32R_CACHEFLUSH_H1#define _ASM_M32R_CACHEFLUSH_H23#include <linux/mm.h>45extern void _flush_cache_all(void);6extern void _flush_cache_copyback_all(void);78#if defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_OPSP) || defined(CONFIG_CHIP_M32104)9#define flush_cache_all() do { } while (0)10#define flush_cache_mm(mm) do { } while (0)11#define flush_cache_dup_mm(mm) do { } while (0)12#define flush_cache_range(vma, start, end) do { } while (0)13#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)14#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 015#define flush_dcache_page(page) do { } while (0)16#define flush_dcache_mmap_lock(mapping) do { } while (0)17#define flush_dcache_mmap_unlock(mapping) do { } while (0)18#ifndef CONFIG_SMP19#define flush_icache_range(start, end) _flush_cache_copyback_all()20#define flush_icache_page(vma,pg) _flush_cache_copyback_all()21#define flush_icache_user_range(vma,pg,adr,len) _flush_cache_copyback_all()22#define flush_cache_sigtramp(addr) _flush_cache_copyback_all()23#else /* CONFIG_SMP */24extern void smp_flush_cache_all(void);25#define flush_icache_range(start, end) smp_flush_cache_all()26#define flush_icache_page(vma,pg) smp_flush_cache_all()27#define flush_icache_user_range(vma,pg,adr,len) smp_flush_cache_all()28#define flush_cache_sigtramp(addr) _flush_cache_copyback_all()29#endif /* CONFIG_SMP */30#elif defined(CONFIG_CHIP_M32102)31#define flush_cache_all() do { } while (0)32#define flush_cache_mm(mm) do { } while (0)33#define flush_cache_dup_mm(mm) do { } while (0)34#define flush_cache_range(vma, start, end) do { } while (0)35#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)36#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 037#define flush_dcache_page(page) do { } while (0)38#define flush_dcache_mmap_lock(mapping) do { } while (0)39#define flush_dcache_mmap_unlock(mapping) do { } while (0)40#define flush_icache_range(start, end) _flush_cache_all()41#define flush_icache_page(vma,pg) _flush_cache_all()42#define flush_icache_user_range(vma,pg,adr,len) _flush_cache_all()43#define flush_cache_sigtramp(addr) _flush_cache_all()44#else45#define flush_cache_all() do { } while (0)46#define flush_cache_mm(mm) do { } while (0)47#define flush_cache_dup_mm(mm) do { } while (0)48#define flush_cache_range(vma, start, end) do { } while (0)49#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)50#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 051#define flush_dcache_page(page) do { } while (0)52#define flush_dcache_mmap_lock(mapping) do { } while (0)53#define flush_dcache_mmap_unlock(mapping) do { } while (0)54#define flush_icache_range(start, end) do { } while (0)55#define flush_icache_page(vma,pg) do { } while (0)56#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)57#define flush_cache_sigtramp(addr) do { } while (0)58#endif /* CONFIG_CHIP_* */5960#define flush_cache_vmap(start, end) do { } while (0)61#define flush_cache_vunmap(start, end) do { } while (0)6263#define copy_to_user_page(vma, page, vaddr, dst, src, len) \64do { \65memcpy(dst, src, len); \66flush_icache_user_range(vma, page, vaddr, len); \67} while (0)68#define copy_from_user_page(vma, page, vaddr, dst, src, len) \69memcpy(dst, src, len)7071#endif /* _ASM_M32R_CACHEFLUSH_H */727374