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

  1. /*
  2.  * include/asm-v850/cacheflush.h
  3.  *
  4.  *  Copyright (C) 2001,02,03  NEC Electronics Corporation
  5.  *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org>
  6.  *
  7.  * This file is subject to the terms and conditions of the GNU General
  8.  * Public License.  See the file COPYING in the main directory of this
  9.  * archive for more details.
  10.  *
  11.  * Written by Miles Bader <miles@gnu.org>
  12.  */
  13.  
  14. #ifndef __V850_CACHEFLUSH_H__
  15. #define __V850_CACHEFLUSH_H__
  16.  
  17. /* Somebody depends on this; sigh...  */
  18. #include <linux/mm.h>
  19.  
  20. #include <asm/machdep.h>
  21.  
  22.  
  23. /* The following are all used by the kernel in ways that only affect
  24.    systems with MMUs, so we don't need them.  */
  25. #define flush_cache_all()            ((void)0)
  26. #define flush_cache_mm(mm)            ((void)0)
  27. #define flush_cache_range(vma, start, end)    ((void)0)
  28. #define flush_cache_page(vma, vmaddr, pfn)    ((void)0)
  29. #define flush_dcache_page(page)            ((void)0)
  30. #define flush_dcache_mmap_lock(mapping)        ((void)0)
  31. #define flush_dcache_mmap_unlock(mapping)    ((void)0)
  32. #define flush_cache_vmap(start, end)        ((void)0)
  33. #define flush_cache_vunmap(start, end)        ((void)0)
  34.  
  35. #ifdef CONFIG_NO_CACHE
  36.  
  37. /* Some systems have no cache at all, in which case we don't need these
  38.    either.  */
  39. #define flush_icache()                ((void)0)
  40. #define flush_icache_range(start, end)        ((void)0)
  41. #define flush_icache_page(vma,pg)        ((void)0)
  42. #define flush_icache_user_range(vma,pg,adr,len)    ((void)0)
  43. #define flush_cache_sigtramp(vaddr)        ((void)0)
  44.  
  45. #else /* !CONFIG_NO_CACHE */
  46.  
  47. struct page;
  48. struct mm_struct;
  49. struct vm_area_struct;
  50.  
  51. /* Otherwise, somebody had better define them.  */
  52. extern void flush_icache (void);
  53. extern void flush_icache_range (unsigned long start, unsigned long end);
  54. extern void flush_icache_page (struct vm_area_struct *vma, struct page *page);
  55. extern void flush_icache_user_range (struct vm_area_struct *vma,
  56.                      struct page *page,
  57.                      unsigned long adr, int len);
  58. extern void flush_cache_sigtramp (unsigned long addr);
  59.  
  60. #endif /* CONFIG_NO_CACHE */
  61.  
  62. #define copy_to_user_page(vma, page, vaddr, dst, src, len) \
  63. do { memcpy(dst, src, len); \
  64.      flush_icache_user_range(vma, page, vaddr, len); \
  65. } while (0)
  66. #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
  67.     memcpy(dst, src, len)
  68.  
  69. #endif /* __V850_CACHEFLUSH_H__ */
  70.