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-sparc / cacheflush.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.4 KB  |  85 lines

  1. #ifndef _SPARC_CACHEFLUSH_H
  2. #define _SPARC_CACHEFLUSH_H
  3.  
  4. #include <linux/mm.h>        /* Common for other includes */
  5. // #include <linux/kernel.h> from pgalloc.h
  6. // #include <linux/sched.h>  from pgalloc.h
  7.  
  8. // #include <asm/page.h>
  9. #include <asm/btfixup.h>
  10.  
  11. /*
  12.  * Fine grained cache flushing.
  13.  */
  14. #ifdef CONFIG_SMP
  15.  
  16. BTFIXUPDEF_CALL(void, local_flush_cache_all, void)
  17. BTFIXUPDEF_CALL(void, local_flush_cache_mm, struct mm_struct *)
  18. BTFIXUPDEF_CALL(void, local_flush_cache_range, struct vm_area_struct *, unsigned long, unsigned long)
  19. BTFIXUPDEF_CALL(void, local_flush_cache_page, struct vm_area_struct *, unsigned long)
  20.  
  21. #define local_flush_cache_all() BTFIXUP_CALL(local_flush_cache_all)()
  22. #define local_flush_cache_mm(mm) BTFIXUP_CALL(local_flush_cache_mm)(mm)
  23. #define local_flush_cache_range(vma,start,end) BTFIXUP_CALL(local_flush_cache_range)(vma,start,end)
  24. #define local_flush_cache_page(vma,addr) BTFIXUP_CALL(local_flush_cache_page)(vma,addr)
  25.  
  26. BTFIXUPDEF_CALL(void, local_flush_page_to_ram, unsigned long)
  27. BTFIXUPDEF_CALL(void, local_flush_sig_insns, struct mm_struct *, unsigned long)
  28.  
  29. #define local_flush_page_to_ram(addr) BTFIXUP_CALL(local_flush_page_to_ram)(addr)
  30. #define local_flush_sig_insns(mm,insn_addr) BTFIXUP_CALL(local_flush_sig_insns)(mm,insn_addr)
  31.  
  32. extern void smp_flush_cache_all(void);
  33. extern void smp_flush_cache_mm(struct mm_struct *mm);
  34. extern void smp_flush_cache_range(struct vm_area_struct *vma,
  35.                   unsigned long start,
  36.                   unsigned long end);
  37. extern void smp_flush_cache_page(struct vm_area_struct *vma, unsigned long page);
  38.  
  39. extern void smp_flush_page_to_ram(unsigned long page);
  40. extern void smp_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr);
  41.  
  42. #endif /* CONFIG_SMP */
  43.  
  44. BTFIXUPDEF_CALL(void, flush_cache_all, void)
  45. BTFIXUPDEF_CALL(void, flush_cache_mm, struct mm_struct *)
  46. BTFIXUPDEF_CALL(void, flush_cache_range, struct vm_area_struct *, unsigned long, unsigned long)
  47. BTFIXUPDEF_CALL(void, flush_cache_page, struct vm_area_struct *, unsigned long)
  48.  
  49. #define flush_cache_all() BTFIXUP_CALL(flush_cache_all)()
  50. #define flush_cache_mm(mm) BTFIXUP_CALL(flush_cache_mm)(mm)
  51. #define flush_cache_range(vma,start,end) BTFIXUP_CALL(flush_cache_range)(vma,start,end)
  52. #define flush_cache_page(vma,addr,pfn) BTFIXUP_CALL(flush_cache_page)(vma,addr)
  53. #define flush_icache_range(start, end)        do { } while (0)
  54. #define flush_icache_page(vma, pg)        do { } while (0)
  55.  
  56. #define flush_icache_user_range(vma,pg,adr,len)    do { } while (0)
  57.  
  58. #define copy_to_user_page(vma, page, vaddr, dst, src, len) \
  59.     do {                            \
  60.         flush_cache_page(vma, vaddr, page_to_pfn(page));\
  61.         memcpy(dst, src, len);                \
  62.     } while (0)
  63. #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
  64.     do {                            \
  65.         flush_cache_page(vma, vaddr, page_to_pfn(page));\
  66.         memcpy(dst, src, len);                \
  67.     } while (0)
  68.  
  69. BTFIXUPDEF_CALL(void, __flush_page_to_ram, unsigned long)
  70. BTFIXUPDEF_CALL(void, flush_sig_insns, struct mm_struct *, unsigned long)
  71.  
  72. #define __flush_page_to_ram(addr) BTFIXUP_CALL(__flush_page_to_ram)(addr)
  73. #define flush_sig_insns(mm,insn_addr) BTFIXUP_CALL(flush_sig_insns)(mm,insn_addr)
  74.  
  75. extern void sparc_flush_page_to_ram(struct page *page);
  76.  
  77. #define flush_dcache_page(page)            sparc_flush_page_to_ram(page)
  78. #define flush_dcache_mmap_lock(mapping)        do { } while (0)
  79. #define flush_dcache_mmap_unlock(mapping)    do { } while (0)
  80.  
  81. #define flush_cache_vmap(start, end)        flush_cache_all()
  82. #define flush_cache_vunmap(start, end)        flush_cache_all()
  83.  
  84. #endif /* _SPARC_CACHEFLUSH_H */
  85.