]> git.saurik.com Git - apple/boot.git/blobdiff - i386/libsaio/cache.c
boot-132.tar.gz
[apple/boot.git] / i386 / libsaio / cache.c
index 4528dc5479006f35d4b220c0e2c331aa7414cf82..8b79dbc91930c2d0eca7cd0b6042ed31fd654b2f 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
  * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
+ * are subject to the Apple Public Source License Version 2.0 (the
  * "License").  You may not use this file except in compliance with the
  * License.  Please obtain a copy of the License at
  * http://www.apple.com/publicsource and read it before using this file.
@@ -55,9 +55,11 @@ static CacheEntry gCacheEntries[kCacheMaxEntries];
 static char       gCacheBuffer[kCacheSize];
 #endif
 
+#if CACHE_STATS
 unsigned long     gCacheHits;
 unsigned long     gCacheMisses;
 unsigned long     gCacheEvicts;
+#endif
 
 void CacheInit( CICell ih, long blockSize )
 {
@@ -74,9 +76,11 @@ void CacheInit( CICell ih, long blockSize )
     gCacheNumEntries = kCacheSize / gCacheBlockSize;
     gCacheTime = 0;
     
+#if CACHE_STATS
     gCacheHits = 0;
     gCacheMisses = 0;
     gCacheEvicts = 0;
+#endif
 
     gCacheIH = ih;
 
@@ -96,8 +100,8 @@ void CacheInit( CICell ih, long blockSize )
 long CacheRead( CICell ih, char * buffer, long long offset,
                    long length, long cache )
 {
-       long       cnt, oldestEntry = 0, oldestTime, loadCache = 0;
-       CacheEntry *entry;
+    long       cnt, oldestEntry = 0, oldestTime, loadCache = 0;
+    CacheEntry *entry;
 
     // See if the data can be cached.
     if (cache && (gCacheIH == ih) && (length == gCacheBlockSize)) {
@@ -113,7 +117,9 @@ long CacheRead( CICell ih, char * buffer, long long offset,
         // If the data was found copy it to the caller.
         if (cnt != gCacheNumEntries) {
             bcopy(gCacheBuffer + cnt * gCacheBlockSize, buffer, gCacheBlockSize);
+#if CACHE_STATS
             gCacheHits++;
+#endif
             return gCacheBlockSize;
         }
 
@@ -124,7 +130,9 @@ long CacheRead( CICell ih, char * buffer, long long offset,
     // Read the data from the disk.
     Seek(ih, offset);
     Read(ih, (long)buffer, length);
+#if CACHE_STATS
     if (cache) gCacheMisses++;
+#endif
 
     // Put the data from the disk in the cache if needed.
     if (loadCache) {
@@ -145,7 +153,9 @@ long CacheRead( CICell ih, char * buffer, long long offset,
         // If no free entry was found, use the oldest.
         if (cnt == gCacheNumEntries) {
             cnt = oldestEntry;
+#if CACHE_STATS
             gCacheEvicts++;
+#endif
         }
 
         // Copy the data from disk to the new entry.