0001
0002 #ifndef _SPARC64_TLB_H
0003 #define _SPARC64_TLB_H
0004
0005 #include <linux/swap.h>
0006 #include <linux/pagemap.h>
0007 #include <asm/tlbflush.h>
0008 #include <asm/mmu_context.h>
0009
0010 #ifdef CONFIG_SMP
0011 void smp_flush_tlb_pending(struct mm_struct *,
0012 unsigned long, unsigned long *);
0013 #endif
0014
0015 #ifdef CONFIG_SMP
0016 void smp_flush_tlb_mm(struct mm_struct *mm);
0017 #define do_flush_tlb_mm(mm) smp_flush_tlb_mm(mm)
0018 #else
0019 #define do_flush_tlb_mm(mm) __flush_tlb_mm(CTX_HWBITS(mm->context), SECONDARY_CONTEXT)
0020 #endif
0021
0022 void __flush_tlb_pending(unsigned long, unsigned long, unsigned long *);
0023 void flush_tlb_pending(void);
0024
0025 #define tlb_flush(tlb) flush_tlb_pending()
0026
0027
0028
0029
0030
0031
0032 #ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE
0033 #define tlb_needs_table_invalidate() (false)
0034 #endif
0035
0036 #include <asm-generic/tlb.h>
0037
0038 #endif