Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _SPARC64_TLBFLUSH_H |
2 | #define _SPARC64_TLBFLUSH_H | |
3 | ||
4 | #include <linux/config.h> | |
5 | #include <linux/mm.h> | |
6 | #include <asm/mmu_context.h> | |
7 | ||
74bf4312 DM |
8 | /* TSB flush operations. */ |
9 | struct mmu_gather; | |
10 | extern void flush_tsb_kernel_range(unsigned long start, unsigned long end); | |
11 | extern void flush_tsb_user(struct mmu_gather *mp); | |
12 | ||
1da177e4 LT |
13 | /* TLB flush operations. */ |
14 | ||
15 | extern void flush_tlb_pending(void); | |
16 | ||
17 | #define flush_tlb_range(vma,start,end) \ | |
18 | do { (void)(start); flush_tlb_pending(); } while (0) | |
19 | #define flush_tlb_page(vma,addr) flush_tlb_pending() | |
20 | #define flush_tlb_mm(mm) flush_tlb_pending() | |
21 | ||
74bf4312 | 22 | /* Local cpu only. */ |
1da177e4 | 23 | extern void __flush_tlb_all(void); |
74bf4312 | 24 | |
1da177e4 LT |
25 | extern void __flush_tlb_page(unsigned long context, unsigned long page, unsigned long r); |
26 | ||
27 | extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end); | |
28 | ||
29 | #ifndef CONFIG_SMP | |
30 | ||
1da177e4 | 31 | #define flush_tlb_kernel_range(start,end) \ |
74bf4312 DM |
32 | do { flush_tsb_kernel_range(start,end); \ |
33 | __flush_tlb_kernel_range(start,end); \ | |
34 | } while (0) | |
1da177e4 LT |
35 | |
36 | #else /* CONFIG_SMP */ | |
37 | ||
1da177e4 LT |
38 | extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end); |
39 | ||
1da177e4 | 40 | #define flush_tlb_kernel_range(start, end) \ |
74bf4312 DM |
41 | do { flush_tsb_kernel_range(start,end); \ |
42 | smp_flush_tlb_kernel_range(start, end); \ | |
43 | } while (0) | |
1da177e4 LT |
44 | |
45 | #endif /* ! CONFIG_SMP */ | |
46 | ||
74bf4312 DM |
47 | static inline void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long end) |
48 | { | |
49 | /* We don't use virtual page tables for TLB miss processing | |
50 | * any more. Nowadays we use the TSB. | |
51 | */ | |
52 | } | |
1da177e4 LT |
53 | |
54 | #endif /* _SPARC64_TLBFLUSH_H */ |