home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sparc / include / asm / tlbflush_64.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.1 KB  |  45 lines

  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. */
  8. struct mmu_gather;
  9. extern void flush_tsb_kernel_range(unsigned long start, unsigned long end);
  10. extern void flush_tsb_user(struct mmu_gather *mp);
  11.  
  12. /* TLB flush operations. */
  13.  
  14. extern 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.  */
  22. extern void __flush_tlb_all(void);
  23.  
  24. extern 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) \
  29. do {    flush_tsb_kernel_range(start,end); \
  30.     __flush_tlb_kernel_range(start,end); \
  31. } while (0)
  32.  
  33. #else /* CONFIG_SMP */
  34.  
  35. extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end);
  36.  
  37. #define flush_tlb_kernel_range(start, end) \
  38. do {    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.