tlbflush.h (1809B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_SH_TLBFLUSH_H 3#define __ASM_SH_TLBFLUSH_H 4 5/* 6 * TLB flushing: 7 * 8 * - flush_tlb_all() flushes all processes TLBs 9 * - flush_tlb_mm(mm) flushes the specified mm context TLB's 10 * - flush_tlb_page(vma, vmaddr) flushes one page 11 * - flush_tlb_range(vma, start, end) flushes a range of pages 12 * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages 13 */ 14extern void local_flush_tlb_all(void); 15extern void local_flush_tlb_mm(struct mm_struct *mm); 16extern void local_flush_tlb_range(struct vm_area_struct *vma, 17 unsigned long start, 18 unsigned long end); 19extern void local_flush_tlb_page(struct vm_area_struct *vma, 20 unsigned long page); 21extern void local_flush_tlb_kernel_range(unsigned long start, 22 unsigned long end); 23extern void local_flush_tlb_one(unsigned long asid, unsigned long page); 24 25extern void __flush_tlb_global(void); 26 27#ifdef CONFIG_SMP 28 29extern void flush_tlb_all(void); 30extern void flush_tlb_mm(struct mm_struct *mm); 31extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 32 unsigned long end); 33extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); 34extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); 35extern void flush_tlb_one(unsigned long asid, unsigned long page); 36 37#else 38 39#define flush_tlb_all() local_flush_tlb_all() 40#define flush_tlb_mm(mm) local_flush_tlb_mm(mm) 41#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page) 42#define flush_tlb_one(asid, page) local_flush_tlb_one(asid, page) 43 44#define flush_tlb_range(vma, start, end) \ 45 local_flush_tlb_range(vma, start, end) 46 47#define flush_tlb_kernel_range(start, end) \ 48 local_flush_tlb_kernel_range(start, end) 49 50#endif /* CONFIG_SMP */ 51 52#endif /* __ASM_SH_TLBFLUSH_H */