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