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-sh / cache.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.1 KB  |  47 lines

  1. /* $Id: cache.h,v 1.6 2004/03/11 18:08:05 lethal Exp $
  2.  *
  3.  * include/asm-sh/cache.h
  4.  *
  5.  * Copyright 1999 (C) Niibe Yutaka
  6.  * Copyright 2002, 2003 (C) Paul Mundt
  7.  */
  8. #ifndef __ASM_SH_CACHE_H
  9. #define __ASM_SH_CACHE_H
  10. #ifdef __KERNEL__
  11.  
  12. #include <asm/cpu/cache.h>
  13. #include <asm/cpu/cacheflush.h>
  14.  
  15. #define SH_CACHE_VALID        1
  16. #define SH_CACHE_UPDATED    2
  17. #define SH_CACHE_COMBINED    4
  18. #define SH_CACHE_ASSOC        8
  19.  
  20. #define L1_CACHE_BYTES        (1 << L1_CACHE_SHIFT)
  21. #define SMP_CACHE_BYTES        L1_CACHE_BYTES
  22.  
  23. #define L1_CACHE_ALIGN(x)    (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
  24.  
  25. struct cache_info {
  26.     unsigned int ways;
  27.     unsigned int sets;
  28.     unsigned int linesz;
  29.  
  30.     unsigned int way_incr;
  31.  
  32.     unsigned int entry_shift;
  33.     unsigned int entry_mask;
  34.  
  35.     unsigned long flags;
  36. };
  37.  
  38. /* Flush (write-back only) a region (smaller than a page) */
  39. extern void __flush_wback_region(void *start, int size);
  40. /* Flush (write-back & invalidate) a region (smaller than a page) */
  41. extern void __flush_purge_region(void *start, int size);
  42. /* Flush (invalidate only) a region (smaller than a page) */
  43. extern void __flush_invalidate_region(void *start, int size);
  44.  
  45. #endif /* __KERNEL__ */
  46. #endif /* __ASM_SH_CACHE_H */
  47.