0001
0002 #ifndef __ASM_TLBFLUSH_H
0003 #define __ASM_TLBFLUSH_H
0004
0005 #include <linux/mm.h>
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 extern void local_flush_tlb_all(void);
0017 extern void local_flush_tlb_range(struct vm_area_struct *vma,
0018 unsigned long start, unsigned long end);
0019 extern void local_flush_tlb_kernel_range(unsigned long start,
0020 unsigned long end);
0021 extern void local_flush_tlb_page(struct vm_area_struct *vma,
0022 unsigned long page);
0023 extern void local_flush_tlb_one(unsigned long vaddr);
0024
0025 #include <asm/mmu_context.h>
0026
0027 #ifdef CONFIG_SMP
0028
0029 extern void flush_tlb_all(void);
0030 extern void flush_tlb_mm(struct mm_struct *);
0031 extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long,
0032 unsigned long);
0033 extern void flush_tlb_kernel_range(unsigned long, unsigned long);
0034 extern void flush_tlb_page(struct vm_area_struct *, unsigned long);
0035 extern void flush_tlb_one(unsigned long vaddr);
0036
0037 #else
0038
0039 #define flush_tlb_all() local_flush_tlb_all()
0040 #define flush_tlb_mm(mm) drop_mmu_context(mm)
0041 #define flush_tlb_range(vma, vmaddr, end) local_flush_tlb_range(vma, vmaddr, end)
0042 #define flush_tlb_kernel_range(vmaddr,end) \
0043 local_flush_tlb_kernel_range(vmaddr, end)
0044 #define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page)
0045 #define flush_tlb_one(vaddr) local_flush_tlb_one(vaddr)
0046
0047 #endif
0048
0049 #endif