1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 4 */ 5 6 #ifndef __UM_TLBFLUSH_H 7 #define __UM_TLBFLUSH_H 8 9 #include <linux/mm.h> 10 11 /* 12 * TLB flushing: 13 * 14 * - flush_tlb() flushes the current mm struct TLBs 15 * - flush_tlb_all() flushes all processes TLBs 16 * - flush_tlb_mm(mm) flushes the specified mm context TLB's 17 * - flush_tlb_page(vma, vmaddr) flushes one page 18 * - flush_tlb_kernel_vm() flushes the kernel vm area 19 * - flush_tlb_range(vma, start, end) flushes a range of pages 20 */ 21 22 extern void flush_tlb_all(void); 23 extern void flush_tlb_mm(struct mm_struct *mm); 24 extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 25 unsigned long end); 26 extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long address); 27 extern void flush_tlb_kernel_vm(void); 28 extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); 29 extern void __flush_tlb_one(unsigned long addr); 30 31 #endif 32