=== modified file 'src/SquidMath.cc'
--- src/SquidMath.cc	2009-12-16 00:56:45 +0000
+++ src/SquidMath.cc	2010-11-18 14:12:37 +0000
@@ -7,6 +7,12 @@
     return b ? ((int) (100.0 * a / b + 0.5)) : 0;
 }
 
+int64_t
+Math::int64Percent(const int64_t a, const int64_t b)
+{
+    return b ? ((int64_t) (100.0 * a / b + 0.5)) : 0;
+}
+
 double
 Math::doublePercent(const double a, const double b)
 {

=== modified file 'src/SquidMath.h'
--- src/SquidMath.h	2009-12-16 00:56:45 +0000
+++ src/SquidMath.h	2010-11-19 11:00:41 +0000
@@ -1,11 +1,14 @@
 #ifndef _SQUID_SRC_SQUIDMATH_H
 #define _SQUID_SRC_SQUIDMATH_H
 
+#include "config.h"
+
 /* Math functions we define locally for Squid */
 namespace Math
 {
 
 extern int intPercent(const int a, const int b);
+extern int64_t int64Percent(const int64_t a, const int64_t b);
 extern double doublePercent(const double, const double);
 extern int intAverage(const int, const int, int, const int);
 extern double doubleAverage(const double, const double, int, const int);

=== modified file 'src/Store.h'
--- src/Store.h	2009-09-03 12:15:55 +0000
+++ src/Store.h	2010-11-18 14:12:37 +0000
@@ -273,10 +273,10 @@
      * The maximum size the store will support in normal use. Inaccuracy is permitted,
      * but may throw estimates for memory etc out of whack.
      */
-    virtual size_t maxSize() const = 0;
+    virtual uint64_t maxSize() const = 0;
 
     /** The minimum size the store will shrink to via normal housekeeping */
-    virtual size_t minSize() const = 0;
+    virtual uint64_t minSize() const = 0;
 
     /**
      * Output stats to the provided store entry.

=== modified file 'src/StoreHashIndex.h'
--- src/StoreHashIndex.h	2009-09-03 12:32:07 +0000
+++ src/StoreHashIndex.h	2010-11-18 14:12:37 +0000
@@ -63,9 +63,9 @@
 
     virtual void sync();
 
-    virtual size_t maxSize() const;
+    virtual uint64_t maxSize() const;
 
-    virtual size_t minSize() const;
+    virtual uint64_t minSize() const;
 
     virtual void stat(StoreEntry&) const;
 

=== modified file 'src/SwapDir.cc'
--- src/SwapDir.cc	2009-11-21 11:01:43 +0000
+++ src/SwapDir.cc	2010-11-18 14:12:37 +0000
@@ -81,11 +81,10 @@
 void
 SwapDir::maintain() {}
 
-size_t
+uint64_t
 SwapDir::minSize() const
 {
-    return (size_t) (((float) maxSize() *
-                      (float) Config.Swap.lowWaterMark) / 100.0);
+    return ((maxSize() * Config.Swap.lowWaterMark) / 100);
 }
 
 void

=== modified file 'src/SwapDir.h'
--- src/SwapDir.h	2009-02-01 10:09:23 +0000
+++ src/SwapDir.h	2010-11-18 15:37:27 +0000
@@ -54,19 +54,17 @@
     virtual int callback();
     virtual void create();
 
-    virtual StoreEntry * get
-    (const cache_key *);
+    virtual StoreEntry * get(const cache_key *);
 
-    virtual void get
-    (String const, STOREGETCLIENT, void * cbdata);
+    virtual void get(String const, STOREGETCLIENT, void * cbdata);
 
     virtual void init();
 
     virtual void maintain(); /* perform regular maintenance should be private and self registered ... */
 
-    virtual size_t maxSize() const;
+    virtual uint64_t maxSize() const;
 
-    virtual size_t minSize() const;
+    virtual uint64_t minSize() const;
 
     virtual void stat(StoreEntry &) const;
 
@@ -115,7 +113,7 @@
 {
 
 public:
-    SwapDir(char const *aType) : theType (aType), cur_size (0), max_size(0), max_objsize (-1), cleanLog(NULL) {
+    SwapDir(char const *aType) : theType (aType), cur_size(0), max_size(0), max_objsize (-1), cleanLog(NULL) {
         fs.blksize = 1024;
         path = NULL;
     }
@@ -127,15 +125,13 @@
     /* official Store interface functions */
     virtual void diskFull();
 
-    virtual StoreEntry * get
-    (const cache_key *);
-
-    virtual void get
-    (String const, STOREGETCLIENT, void * cbdata);
-
-    virtual size_t maxSize() const { return max_size;}
-
-    virtual size_t minSize() const;
+    virtual StoreEntry * get(const cache_key *);
+
+    virtual void get(String const, STOREGETCLIENT, void * cbdata);
+
+    virtual uint64_t maxSize() const { return max_size;}
+
+    virtual uint64_t minSize() const;
     virtual void stat (StoreEntry &anEntry) const;
     virtual StoreSearch *search(String const url, HttpRequest *) = 0;
 
@@ -157,8 +153,8 @@
     char const *theType;
 
 public:
-    int cur_size;
-    int max_size;
+    uint64_t cur_size;
+    uint64_t max_size;
     char *path;
     int index;			/* This entry's index into the swapDirs array */
     int64_t max_objsize;

=== modified file 'src/fs/coss/store_dir_coss.cc'
--- src/fs/coss/store_dir_coss.cc	2009-12-16 00:56:45 +0000
+++ src/fs/coss/store_dir_coss.cc	2010-11-18 15:38:07 +0000
@@ -996,10 +996,10 @@
 CossSwapDir::statfs(StoreEntry & sentry) const
 {
     storeAppendPrintf(&sentry, "\n");
-    storeAppendPrintf(&sentry, "Maximum Size: %d KB\n", max_size);
-    storeAppendPrintf(&sentry, "Current Size: %d KB\n", cur_size);
+    storeAppendPrintf(&sentry, "Maximum Size: %"PRIu64" KB\n", max_size);
+    storeAppendPrintf(&sentry, "Current Size: %"PRIu64" KB\n", cur_size);
     storeAppendPrintf(&sentry, "Percent Used: %0.2f%%\n",
-                      100.0 * cur_size / max_size);
+                      (100.0 * (double)cur_size / (double)max_size) );
     storeAppendPrintf(&sentry, "Number of object collisions: %d\n", (int) numcollisions);
 #if 0
     /* is this applicable? I Hope not .. */
@@ -1095,7 +1095,7 @@
 void
 CossSwapDir::dump(StoreEntry &entry)const
 {
-    storeAppendPrintf(&entry, " %d", max_size >> 10);
+    storeAppendPrintf(&entry, " %"PRIu64"", (max_size >> 10));
     dumpOptions(&entry);
 }
 

=== modified file 'src/fs/ufs/store_dir_ufs.cc'
--- src/fs/ufs/store_dir_ufs.cc	2009-12-16 00:56:45 +0000
+++ src/fs/ufs/store_dir_ufs.cc	2010-11-18 15:38:54 +0000
@@ -71,15 +71,12 @@
 void
 UFSSwapDir::parseSizeL1L2()
 {
-    int i;
-    int size;
-
-    i = GetInteger();
-    size = i << 10;		/* Mbytes to kbytes */
-
-    if (size <= 0)
+    int i = GetInteger();
+    if (i <= 0)
         fatal("UFSSwapDir::parseSizeL1L2: invalid size value");
 
+    size_t size = i << 10;		/* Mbytes to kbytes */
+
     /* just reconfigure it */
     if (reconfiguring) {
         if (size == max_size)
@@ -314,10 +311,10 @@
     int x;
     storeAppendPrintf(&sentry, "First level subdirectories: %d\n", l1);
     storeAppendPrintf(&sentry, "Second level subdirectories: %d\n", l2);
-    storeAppendPrintf(&sentry, "Maximum Size: %d KB\n", max_size);
-    storeAppendPrintf(&sentry, "Current Size: %d KB\n", cur_size);
+    storeAppendPrintf(&sentry, "Maximum Size: %"PRIu64" KB\n", max_size);
+    storeAppendPrintf(&sentry, "Current Size: %"PRIu64" KB\n", cur_size);
     storeAppendPrintf(&sentry, "Percent Used: %0.2f%%\n",
-                      100.0 * cur_size / max_size);
+                      (double)(100.0 * cur_size) / (double)max_size);
     storeAppendPrintf(&sentry, "Filemap bits in use: %d of %d (%d%%)\n",
                       map->n_files_in_map, map->max_n_files,
                       Math::intPercent(map->n_files_in_map, map->max_n_files));
@@ -380,7 +377,7 @@
     walker = repl->PurgeInit(repl, max_scan);
 
     while (1) {
-        if (cur_size < (int) minSize()) /* cur_size should be unsigned */
+        if (cur_size < minSize())
             break;
 
         if (removed >= max_remove)
@@ -1325,8 +1322,8 @@
 void
 UFSSwapDir::dump(StoreEntry & entry) const
 {
-    storeAppendPrintf(&entry, " %d %d %d",
-                      max_size >> 10,
+    storeAppendPrintf(&entry, " %"PRIu64" %d %d",
+                      (max_size >> 10),
                       l1,
                       l2);
     dumpOptions(&entry);

=== modified file 'src/store_dir.cc'
--- src/store_dir.cc	2009-12-16 00:56:45 +0000
+++ src/store_dir.cc	2010-11-18 15:50:10 +0000
@@ -343,8 +343,8 @@
 void
 SwapDir::updateSize(int64_t size, int sign)
 {
-    int blks = (size + fs.blksize - 1) / fs.blksize;
-    int k = (blks * fs.blksize >> 10) * sign;
+    int64_t blks = (size + fs.blksize - 1) / fs.blksize;
+    int64_t k = ((blks * fs.blksize) >> 10) * sign;
     cur_size += k;
     store_swap_size += k;
 
@@ -360,13 +360,13 @@
     storeAppendPrintf(&output, "Store Directory Statistics:\n");
     storeAppendPrintf(&output, "Store Entries          : %lu\n",
                       (unsigned long int)StoreEntry::inUseCount());
-    storeAppendPrintf(&output, "Maximum Swap Size      : %8ld KB\n",
-                      (long int) maxSize());
+    storeAppendPrintf(&output, "Maximum Swap Size      : %"PRIu64" KB\n",
+                      maxSize());
     storeAppendPrintf(&output, "Current Store Swap Size: %8lu KB\n",
                       store_swap_size);
-    storeAppendPrintf(&output, "Current Capacity       : %d%% used, %d%% free\n",
-                      Math::intPercent((int) store_swap_size, (int) maxSize()),
-                      Math::intPercent((int) (maxSize() - store_swap_size), (int) maxSize()));
+    storeAppendPrintf(&output, "Current Capacity       : %"PRId64"%% used, %"PRId64"%% free\n",
+                      Math::int64Percent(store_swap_size, maxSize()),
+                      Math::int64Percent((maxSize() - store_swap_size), maxSize()));
     /* FIXME Here we should output memory statistics */
 
     /* now the swapDir */
@@ -374,14 +374,14 @@
 }
 
 /* if needed, this could be taught to cache the result */
-size_t
+uint64_t
 StoreController::maxSize() const
 {
     /* TODO: include memory cache ? */
     return swapDir->maxSize();
 }
 
-size_t
+uint64_t
 StoreController::minSize() const
 {
     /* TODO: include memory cache ? */
@@ -827,22 +827,21 @@
     }
 }
 
-size_t
+uint64_t
 StoreHashIndex::maxSize() const
 {
-    int i;
-    size_t result = 0;
+    uint64_t result = 0;
 
-    for (i = 0; i < Config.cacheSwap.n_configured; i++)
+    for (int i = 0; i < Config.cacheSwap.n_configured; i++)
         result += store(i)->maxSize();
 
     return result;
 }
 
-size_t
+uint64_t
 StoreHashIndex::minSize() const
 {
-    size_t result = 0;
+    uint64_t result = 0;
 
     for (int i = 0; i < Config.cacheSwap.n_configured; i++)
         result += store(i)->minSize();

=== modified file 'src/tests/TestSwapDir.cc'
--- src/tests/TestSwapDir.cc	2007-05-29 19:31:36 +0000
+++ src/tests/TestSwapDir.cc	2010-11-18 14:12:37 +0000
@@ -3,7 +3,7 @@
 #include "squid.h"
 #include "TestSwapDir.h"
 
-size_t
+uint64_t
 TestSwapDir::maxSize() const
 {
     return 3;

=== modified file 'src/tests/TestSwapDir.h'
--- src/tests/TestSwapDir.h	2007-05-29 19:31:36 +0000
+++ src/tests/TestSwapDir.h	2010-11-18 14:12:37 +0000
@@ -12,7 +12,7 @@
 
     bool statsCalled;
 
-    virtual size_t maxSize() const;
+    virtual uint64_t maxSize() const;
     virtual void stat(StoreEntry &) const; /* output stats to the provided store entry */
 
     virtual void reconfigure(int, char*);

=== modified file 'src/tests/testStore.cc'
--- src/tests/testStore.cc	2008-10-11 13:17:46 +0000
+++ src/tests/testStore.cc	2010-11-18 14:12:37 +0000
@@ -31,13 +31,13 @@
 TestStore::init()
 {}
 
-size_t
+uint64_t
 TestStore::maxSize() const
 {
     return 3;
 }
 
-size_t
+uint64_t
 TestStore::minSize() const
 {
     return 1;

=== modified file 'src/tests/testStore.h'
--- src/tests/testStore.h	2008-10-11 13:17:46 +0000
+++ src/tests/testStore.h	2010-11-18 14:12:37 +0000
@@ -55,9 +55,9 @@
 
     virtual void maintain() {};
 
-    virtual size_t maxSize() const;
+    virtual uint64_t maxSize() const;
 
-    virtual size_t minSize() const;
+    virtual uint64_t minSize() const;
 
     virtual void stat(StoreEntry &) const; /* output stats to the provided store entry */
 


