home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / tlbflush.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.8 KB  |  55 lines

  1. #ifndef __ASM_TLBFLUSH_H
  2. #define __ASM_TLBFLUSH_H
  3.  
  4. #include <linux/mm.h>
  5.  
  6. /*
  7.  * TLB flushing:
  8.  *
  9.  *  - flush_tlb_all() flushes all processes TLB entries
  10.  *  - flush_tlb_mm(mm) flushes the specified mm context TLB entries
  11.  *  - flush_tlb_page(vma, vmaddr) flushes one page
  12.  *  - flush_tlb_range(vma, start, end) flushes a range of pages
  13.  *  - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
  14.  *  - flush_tlb_pgtables(mm, start, end) flushes a range of page tables
  15.  */
  16. extern void local_flush_tlb_all(void);
  17. extern void local_flush_tlb_mm(struct mm_struct *mm);
  18. extern void local_flush_tlb_range(struct vm_area_struct *vma,
  19.     unsigned long start, unsigned long end);
  20. extern void local_flush_tlb_kernel_range(unsigned long start,
  21.     unsigned long end);
  22. extern void local_flush_tlb_page(struct vm_area_struct *vma,
  23.     unsigned long page);
  24. extern void local_flush_tlb_one(unsigned long vaddr);
  25.  
  26. #ifdef CONFIG_SMP
  27.  
  28. extern void flush_tlb_all(void);
  29. extern void flush_tlb_mm(struct mm_struct *);
  30. extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long,
  31.     unsigned long);
  32. extern void flush_tlb_kernel_range(unsigned long, unsigned long);
  33. extern void flush_tlb_page(struct vm_area_struct *, unsigned long);
  34. extern void flush_tlb_one(unsigned long vaddr);
  35.  
  36. #else /* CONFIG_SMP */
  37.  
  38. #define flush_tlb_all()            local_flush_tlb_all()
  39. #define flush_tlb_mm(mm)        local_flush_tlb_mm(mm)
  40. #define flush_tlb_range(vma,vmaddr,end)    local_flush_tlb_range(vma, vmaddr, end)
  41. #define flush_tlb_kernel_range(vmaddr,end) \
  42.     local_flush_tlb_kernel_range(vmaddr, end)
  43. #define flush_tlb_page(vma,page)    local_flush_tlb_page(vma, page)
  44. #define flush_tlb_one(vaddr)        local_flush_tlb_one(vaddr)
  45.  
  46. #endif /* CONFIG_SMP */
  47.  
  48. static inline void flush_tlb_pgtables(struct mm_struct *mm,
  49.     unsigned long start, unsigned long end)
  50. {
  51.     /* Nothing to do on MIPS.  */
  52. }
  53.  
  54. #endif /* __ASM_TLBFLUSH_H */
  55.