Blame view

include/asm-ia64/cacheflush.h 1.57 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
  #ifndef _ASM_IA64_CACHEFLUSH_H
  #define _ASM_IA64_CACHEFLUSH_H
  
  /*
   * Copyright (C) 2002 Hewlett-Packard Co
   *	David Mosberger-Tang <davidm@hpl.hp.com>
   */
  
  #include <linux/page-flags.h>
1977f0327   Jiri Slaby   remove asm/bitops...
10
  #include <linux/bitops.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
11

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
12
13
14
15
16
17
18
19
20
  #include <asm/page.h>
  
  /*
   * Cache flushing routines.  This is the kind of stuff that can be very expensive, so try
   * to avoid them whenever possible.
   */
  
  #define flush_cache_all()			do { } while (0)
  #define flush_cache_mm(mm)			do { } while (0)
ec8c0446b   Ralf Baechle   [PATCH] Optimize ...
21
  #define flush_cache_dup_mm(mm)			do { } while (0)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  #define flush_cache_range(vma, start, end)	do { } while (0)
  #define flush_cache_page(vma, vmaddr, pfn)	do { } while (0)
  #define flush_icache_page(vma,page)		do { } while (0)
  #define flush_cache_vmap(start, end)		do { } while (0)
  #define flush_cache_vunmap(start, end)		do { } while (0)
  
  #define flush_dcache_page(page)			\
  do {						\
  	clear_bit(PG_arch_1, &(page)->flags);	\
  } while (0)
  
  #define flush_dcache_mmap_lock(mapping)		do { } while (0)
  #define flush_dcache_mmap_unlock(mapping)	do { } while (0)
  
  extern void flush_icache_range (unsigned long start, unsigned long end);
  
  #define flush_icache_user_range(vma, page, user_addr, len)					\
  do {												\
  	unsigned long _addr = (unsigned long) page_address(page) + ((user_addr) & ~PAGE_MASK);	\
  	flush_icache_range(_addr, _addr + (len));						\
  } while (0)
  
  #define copy_to_user_page(vma, page, vaddr, dst, src, len) \
  do { memcpy(dst, src, len); \
       flush_icache_user_range(vma, page, vaddr, len); \
  } while (0)
  #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
  	memcpy(dst, src, len)
  
  #endif /* _ASM_IA64_CACHEFLUSH_H */