1*f2f4bf5aSAlex Dewar /* SPDX-License-Identifier: GPL-2.0 */ 28ede0bdbSAl Viro /* 38ede0bdbSAl Viro * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 48ede0bdbSAl Viro */ 58ede0bdbSAl Viro 68ede0bdbSAl Viro #ifndef __UM_TLBFLUSH_H 78ede0bdbSAl Viro #define __UM_TLBFLUSH_H 88ede0bdbSAl Viro 98ede0bdbSAl Viro #include <linux/mm.h> 108ede0bdbSAl Viro 118ede0bdbSAl Viro /* 128ede0bdbSAl Viro * TLB flushing: 138ede0bdbSAl Viro * 148ede0bdbSAl Viro * - flush_tlb() flushes the current mm struct TLBs 158ede0bdbSAl Viro * - flush_tlb_all() flushes all processes TLBs 168ede0bdbSAl Viro * - flush_tlb_mm(mm) flushes the specified mm context TLB's 178ede0bdbSAl Viro * - flush_tlb_page(vma, vmaddr) flushes one page 188ede0bdbSAl Viro * - flush_tlb_kernel_vm() flushes the kernel vm area 198ede0bdbSAl Viro * - flush_tlb_range(vma, start, end) flushes a range of pages 208ede0bdbSAl Viro */ 218ede0bdbSAl Viro 228ede0bdbSAl Viro extern void flush_tlb_all(void); 238ede0bdbSAl Viro extern void flush_tlb_mm(struct mm_struct *mm); 248ede0bdbSAl Viro extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 258ede0bdbSAl Viro unsigned long end); 268ede0bdbSAl Viro extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long address); 278ede0bdbSAl Viro extern void flush_tlb_kernel_vm(void); 288ede0bdbSAl Viro extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); 298ede0bdbSAl Viro extern void __flush_tlb_one(unsigned long addr); 308ede0bdbSAl Viro 318ede0bdbSAl Viro #endif 32