home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sh / include / asm / cache.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.2 KB  |  52 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 <linux/init.h>
  13. #include <cpu/cache.h>
  14.  
  15. #define L1_CACHE_BYTES        (1 << L1_CACHE_SHIFT)
  16.  
  17. #define __read_mostly __attribute__((__section__(".data.read_mostly")))
  18.  
  19. #ifndef __ASSEMBLY__
  20. struct cache_info {
  21.     unsigned int ways;        /* Number of cache ways */
  22.     unsigned int sets;        /* Number of cache sets */
  23.     unsigned int linesz;        /* Cache line size (bytes) */
  24.  
  25.     unsigned int way_size;        /* sets * line size */
  26.  
  27.     /*
  28.      * way_incr is the address offset for accessing the next way
  29.      * in memory mapped cache array ops.
  30.      */
  31.     unsigned int way_incr;
  32.     unsigned int entry_shift;
  33.     unsigned int entry_mask;
  34.  
  35.     /*
  36.      * Compute a mask which selects the address bits which overlap between
  37.      * 1. those used to select the cache set during indexing
  38.      * 2. those in the physical page number.
  39.      */
  40.     unsigned int alias_mask;
  41.  
  42.     unsigned int n_aliases;        /* Number of aliases */
  43.  
  44.     unsigned long flags;
  45. };
  46.  
  47. int __init detect_cpu_and_cache_system(void);
  48.  
  49. #endif /* __ASSEMBLY__ */
  50. #endif /* __KERNEL__ */
  51. #endif /* __ASM_SH_CACHE_H */
  52.