xref: /openbmc/linux/arch/um/include/asm/tlbflush.h (revision 976e3645923bdd2fe7893aae33fd7a21098bfb28)
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