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-cris / tlbflush.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.4 KB  |  56 lines

  1. #ifndef _CRIS_TLBFLUSH_H
  2. #define _CRIS_TLBFLUSH_H
  3.  
  4. #include <linux/mm.h>
  5. #include <asm/processor.h>
  6. #include <asm/pgtable.h>
  7. #include <asm/pgalloc.h>
  8.  
  9. /*
  10.  * TLB flushing (implemented in arch/cris/mm/tlb.c):
  11.  *
  12.  *  - flush_tlb() flushes the current mm struct TLBs
  13.  *  - flush_tlb_all() flushes all processes TLBs
  14.  *  - flush_tlb_mm(mm) flushes the specified mm context TLB's
  15.  *  - flush_tlb_page(vma, vmaddr) flushes one page
  16.  *  - flush_tlb_range(mm, start, end) flushes a range of pages
  17.  *
  18.  */
  19.  
  20. extern void __flush_tlb_all(void);
  21. extern void __flush_tlb_mm(struct mm_struct *mm);
  22. extern void __flush_tlb_page(struct vm_area_struct *vma,
  23.                unsigned long addr);
  24.  
  25. #ifdef CONFIG_SMP
  26. extern void flush_tlb_all(void);
  27. extern void flush_tlb_mm(struct mm_struct *mm);
  28. extern void flush_tlb_page(struct vm_area_struct *vma, 
  29.                unsigned long addr);
  30. #else
  31. #define flush_tlb_all __flush_tlb_all
  32. #define flush_tlb_mm __flush_tlb_mm
  33. #define flush_tlb_page __flush_tlb_page
  34. #endif
  35.  
  36. static inline void flush_tlb_range(struct vm_area_struct * vma, unsigned long start, unsigned long end)
  37. {
  38.     flush_tlb_mm(vma->vm_mm);
  39. }
  40.  
  41. static inline void flush_tlb_pgtables(struct mm_struct *mm,
  42.                                       unsigned long start, unsigned long end)
  43. {
  44.         /* CRIS does not keep any page table caches in TLB */
  45. }
  46.  
  47.  
  48. static inline void flush_tlb(void)
  49. {
  50.     flush_tlb_mm(current->mm);
  51. }
  52.  
  53. #define flush_tlb_kernel_range(start, end) flush_tlb_all()
  54.  
  55. #endif /* _CRIS_TLBFLUSH_H */
  56.