Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.13 70 lines 1.7 kB view raw
1#ifndef _SPARC64_TLBFLUSH_H 2#define _SPARC64_TLBFLUSH_H 3 4#include <asm/mmu_context.h> 5 6/* TSB flush operations. */ 7 8#define TLB_BATCH_NR 192 9 10struct tlb_batch { 11 unsigned int hugepage_shift; 12 struct mm_struct *mm; 13 unsigned long tlb_nr; 14 unsigned long active; 15 unsigned long vaddrs[TLB_BATCH_NR]; 16}; 17 18void flush_tsb_kernel_range(unsigned long start, unsigned long end); 19void flush_tsb_user(struct tlb_batch *tb); 20void flush_tsb_user_page(struct mm_struct *mm, unsigned long vaddr, 21 unsigned int hugepage_shift); 22 23/* TLB flush operations. */ 24 25static inline void flush_tlb_mm(struct mm_struct *mm) 26{ 27} 28 29static inline void flush_tlb_page(struct vm_area_struct *vma, 30 unsigned long vmaddr) 31{ 32} 33 34static inline void flush_tlb_range(struct vm_area_struct *vma, 35 unsigned long start, unsigned long end) 36{ 37} 38 39void flush_tlb_kernel_range(unsigned long start, unsigned long end); 40 41#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE 42 43void flush_tlb_pending(void); 44void arch_enter_lazy_mmu_mode(void); 45void arch_leave_lazy_mmu_mode(void); 46#define arch_flush_lazy_mmu_mode() do {} while (0) 47 48/* Local cpu only. */ 49void __flush_tlb_all(void); 50void __flush_tlb_page(unsigned long context, unsigned long vaddr); 51void __flush_tlb_kernel_range(unsigned long start, unsigned long end); 52 53#ifndef CONFIG_SMP 54 55static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr) 56{ 57 __flush_tlb_page(CTX_HWBITS(mm->context), vaddr); 58} 59 60#else /* CONFIG_SMP */ 61 62void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end); 63void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr); 64 65#define global_flush_tlb_page(mm, vaddr) \ 66 smp_flush_tlb_page(mm, vaddr) 67 68#endif /* ! CONFIG_SMP */ 69 70#endif /* _SPARC64_TLBFLUSH_H */