linux/arch/sparc/include/asm/tlbflush_64.h
<<
>>
Prefs
   1#ifndef _SPARC64_TLBFLUSH_H
   2#define _SPARC64_TLBFLUSH_H
   3
   4#include <linux/mm.h>
   5#include <asm/mmu_context.h>
   6
   7/* TSB flush operations. */
   8struct mmu_gather;
   9extern void flush_tsb_kernel_range(unsigned long start, unsigned long end);
  10extern void flush_tsb_user(struct mmu_gather *mp);
  11
  12/* TLB flush operations. */
  13
  14extern void flush_tlb_pending(void);
  15
  16#define flush_tlb_range(vma,start,end)  \
  17        do { (void)(start); flush_tlb_pending(); } while (0)
  18#define flush_tlb_page(vma,addr)        flush_tlb_pending()
  19#define flush_tlb_mm(mm)                flush_tlb_pending()
  20
  21/* Local cpu only.  */
  22extern void __flush_tlb_all(void);
  23
  24extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end);
  25
  26#ifndef CONFIG_SMP
  27
  28#define flush_tlb_kernel_range(start,end) \
  29do {    flush_tsb_kernel_range(start,end); \
  30        __flush_tlb_kernel_range(start,end); \
  31} while (0)
  32
  33#else /* CONFIG_SMP */
  34
  35extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end);
  36
  37#define flush_tlb_kernel_range(start, end) \
  38do {    flush_tsb_kernel_range(start,end); \
  39        smp_flush_tlb_kernel_range(start, end); \
  40} while (0)
  41
  42#endif /* ! CONFIG_SMP */
  43
  44#endif /* _SPARC64_TLBFLUSH_H */
  45