~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/asm-generic/cacheflush.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef _ASM_GENERIC_CACHEFLUSH_H
  3 #define _ASM_GENERIC_CACHEFLUSH_H
  4 
  5 #include <linux/instrumented.h>
  6 
  7 struct mm_struct;
  8 struct vm_area_struct;
  9 struct page;
 10 struct address_space;
 11 
 12 /*
 13  * The cache doesn't need to be flushed when TLB entries change when
 14  * the cache is mapped to physical memory, not virtual memory
 15  */
 16 #ifndef flush_cache_all
 17 static inline void flush_cache_all(void)
 18 {
 19 }
 20 #endif
 21 
 22 #ifndef flush_cache_mm
 23 static inline void flush_cache_mm(struct mm_struct *mm)
 24 {
 25 }
 26 #endif
 27 
 28 #ifndef flush_cache_dup_mm
 29 static inline void flush_cache_dup_mm(struct mm_struct *mm)
 30 {
 31 }
 32 #endif
 33 
 34 #ifndef flush_cache_range
 35 static inline void flush_cache_range(struct vm_area_struct *vma,
 36                                      unsigned long start,
 37                                      unsigned long end)
 38 {
 39 }
 40 #endif
 41 
 42 #ifndef flush_cache_page
 43 static inline void flush_cache_page(struct vm_area_struct *vma,
 44                                     unsigned long vmaddr,
 45                                     unsigned long pfn)
 46 {
 47 }
 48 #endif
 49 
 50 #ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
 51 static inline void flush_dcache_page(struct page *page)
 52 {
 53 }
 54 
 55 #define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
 56 #endif
 57 
 58 #ifndef flush_dcache_mmap_lock
 59 static inline void flush_dcache_mmap_lock(struct address_space *mapping)
 60 {
 61 }
 62 #endif
 63 
 64 #ifndef flush_dcache_mmap_unlock
 65 static inline void flush_dcache_mmap_unlock(struct address_space *mapping)
 66 {
 67 }
 68 #endif
 69 
 70 #ifndef flush_icache_range
 71 static inline void flush_icache_range(unsigned long start, unsigned long end)
 72 {
 73 }
 74 #endif
 75 
 76 #ifndef flush_icache_user_range
 77 #define flush_icache_user_range flush_icache_range
 78 #endif
 79 
 80 #ifndef flush_icache_user_page
 81 static inline void flush_icache_user_page(struct vm_area_struct *vma,
 82                                            struct page *page,
 83                                            unsigned long addr, int len)
 84 {
 85 }
 86 #endif
 87 
 88 #ifndef flush_cache_vmap
 89 static inline void flush_cache_vmap(unsigned long start, unsigned long end)
 90 {
 91 }
 92 #endif
 93 
 94 #ifndef flush_cache_vmap_early
 95 static inline void flush_cache_vmap_early(unsigned long start, unsigned long end)
 96 {
 97 }
 98 #endif
 99 
100 #ifndef flush_cache_vunmap
101 static inline void flush_cache_vunmap(unsigned long start, unsigned long end)
102 {
103 }
104 #endif
105 
106 #ifndef copy_to_user_page
107 #define copy_to_user_page(vma, page, vaddr, dst, src, len)      \
108         do { \
109                 instrument_copy_to_user((void __user *)dst, src, len); \
110                 memcpy(dst, src, len); \
111                 flush_icache_user_page(vma, page, vaddr, len); \
112         } while (0)
113 #endif
114 
115 
116 #ifndef copy_from_user_page
117 #define copy_from_user_page(vma, page, vaddr, dst, src, len)              \
118         do {                                                              \
119                 instrument_copy_from_user_before(dst, (void __user *)src, \
120                                                  len);                    \
121                 memcpy(dst, src, len);                                    \
122                 instrument_copy_from_user_after(dst, (void __user *)src, len, \
123                                                 0);                       \
124         } while (0)
125 #endif
126 
127 #endif /* _ASM_GENERIC_CACHEFLUSH_H */
128 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php