1 /* 2 * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch> 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 * 17 */ 18 19 #ifndef _ASM_NIOS2_TLBFLUSH_H 20 #define _ASM_NIOS2_TLBFLUSH_H 21 22 struct mm_struct; 23 24 /* 25 * TLB flushing: 26 * 27 * - flush_tlb_all() flushes all processes TLB entries 28 * - flush_tlb_mm(mm) flushes the specified mm context TLB entries 29 * - flush_tlb_page(vma, vmaddr) flushes one page 30 * - flush_tlb_range(vma, start, end) flushes a range of pages 31 * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages 32 */ 33 extern void flush_tlb_all(void); 34 extern void flush_tlb_mm(struct mm_struct *mm); 35 extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 36 unsigned long end); 37 extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); 38 extern void flush_tlb_one(unsigned long vaddr); 39 40 static inline void flush_tlb_page(struct vm_area_struct *vma, 41 unsigned long addr) 42 { 43 flush_tlb_one(addr); 44 } 45 46 #endif /* _ASM_NIOS2_TLBFLUSH_H */ 47