linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-sparc64 / tlbflush.h
index 3487328..3ef9909 100644 (file)
@@ -1,14 +1,10 @@
 #ifndef _SPARC64_TLBFLUSH_H
 #define _SPARC64_TLBFLUSH_H
 
+#include <linux/config.h>
 #include <linux/mm.h>
 #include <asm/mmu_context.h>
 
-/* TSB flush operations. */
-struct mmu_gather;
-extern void flush_tsb_kernel_range(unsigned long start, unsigned long end);
-extern void flush_tsb_user(struct mmu_gather *mp);
-
 /* TLB flush operations. */
 
 extern void flush_tlb_pending(void);
@@ -18,34 +14,28 @@ extern void flush_tlb_pending(void);
 #define flush_tlb_page(vma,addr)       flush_tlb_pending()
 #define flush_tlb_mm(mm)               flush_tlb_pending()
 
-/* Local cpu only.  */
 extern void __flush_tlb_all(void);
+extern void __flush_tlb_page(unsigned long context, unsigned long page, unsigned long r);
 
 extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end);
 
 #ifndef CONFIG_SMP
 
+#define flush_tlb_all()                __flush_tlb_all()
 #define flush_tlb_kernel_range(start,end) \
-do {   flush_tsb_kernel_range(start,end); \
-       __flush_tlb_kernel_range(start,end); \
-} while (0)
+       __flush_tlb_kernel_range(start,end)
 
 #else /* CONFIG_SMP */
 
+extern void smp_flush_tlb_all(void);
 extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end);
 
+#define flush_tlb_all()                smp_flush_tlb_all()
 #define flush_tlb_kernel_range(start, end) \
-do {   flush_tsb_kernel_range(start,end); \
-       smp_flush_tlb_kernel_range(start, end); \
-} while (0)
+       smp_flush_tlb_kernel_range(start, end)
 
 #endif /* ! CONFIG_SMP */
 
-static inline void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long end)
-{
-       /* We don't use virtual page tables for TLB miss processing
-        * any more.  Nowadays we use the TSB.
-        */
-}
+extern void flush_tlb_pgtables(struct mm_struct *, unsigned long, unsigned long);
 
 #endif /* _SPARC64_TLBFLUSH_H */