=== modified file 'src/SquidMath.cc' --- src/SquidMath.cc 2009-12-02 22:39:11 +0000 +++ src/SquidMath.cc 2010-10-16 23:31:39 +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-03 22:34:46 +0000 +++ src/SquidMath.h 2010-10-16 23:32:10 +0000 @@ -6,6 +6,7 @@ { 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-12-26 00:25:57 +0000 +++ src/Store.h 2010-10-17 11:22:15 +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-02 13:09:29 +0000 +++ src/StoreHashIndex.h 2010-10-17 11:29:26 +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 2010-03-22 13:05:28 +0000 +++ src/SwapDir.cc 2010-10-17 11:47:40 +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 2010-10-01 05:29:18 +0000 +++ src/SwapDir.h 2010-10-17 11:21:19 +0000 @@ -62,9 +62,9 @@ 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; @@ -129,9 +129,9 @@ virtual void get(String const, STOREGETCLIENT, void * cbdata); - virtual size_t maxSize() const { return max_size;} + virtual uint64_t maxSize() const { return max_size;} - virtual size_t minSize() const; + virtual uint64_t minSize() const; virtual void stat (StoreEntry &anEntry) const; virtual StoreSearch *search(String const url, HttpRequest *) = 0; @@ -153,8 +153,8 @@ char const *theType; public: - size_t cur_size; - size_t max_size; + uint64_t cur_size; ///< currently used space in the storage area + uint64_t max_size; ///< maximum allocatable size of the storage area 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 2010-10-01 05:29:18 +0000 +++ src/fs/coss/store_dir_coss.cc 2010-10-16 23:27:53 +0000 @@ -997,8 +997,8 @@ CossSwapDir::statfs(StoreEntry & sentry) const { storeAppendPrintf(&sentry, "\n"); - storeAppendPrintf(&sentry, "Maximum Size: %Zu KB\n", max_size); - storeAppendPrintf(&sentry, "Current Size: %Zu KB\n", cur_size); + storeAppendPrintf(&sentry, "Maximum Size: %lu KB\n", max_size); + storeAppendPrintf(&sentry, "Current Size: %lu KB\n", cur_size); storeAppendPrintf(&sentry, "Percent Used: %0.2f%%\n", (100.0 * (double)cur_size / (double)max_size) ); storeAppendPrintf(&sentry, "Number of object collisions: %d\n", (int) numcollisions); @@ -1096,7 +1096,7 @@ void CossSwapDir::dump(StoreEntry &entry)const { - storeAppendPrintf(&entry, " %Zu", (max_size >> 10)); + storeAppendPrintf(&entry, " %lu", (max_size >> 10)); dumpOptions(&entry); } === modified file 'src/fs/ufs/store_dir_ufs.cc' --- src/fs/ufs/store_dir_ufs.cc 2010-10-01 05:29:18 +0000 +++ src/fs/ufs/store_dir_ufs.cc 2010-10-17 06:51:39 +0000 @@ -312,8 +312,8 @@ int x; storeAppendPrintf(&sentry, "First level subdirectories: %d\n", l1); storeAppendPrintf(&sentry, "Second level subdirectories: %d\n", l2); - storeAppendPrintf(&sentry, "Maximum Size: %Zu KB\n", max_size); - storeAppendPrintf(&sentry, "Current Size: %Zu 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", (double)(100.0 * cur_size) / (double)max_size); storeAppendPrintf(&sentry, "Filemap bits in use: %d of %d (%d%%)\n", @@ -1323,7 +1323,7 @@ void UFSSwapDir::dump(StoreEntry & entry) const { - storeAppendPrintf(&entry, " %Zu %d %d", (max_size >> 10), l1, l2); + storeAppendPrintf(&entry, " %"PRIu64" %d %d", (max_size >> 10), l1, l2); dumpOptions(&entry); } === modified file 'src/store_dir.cc' --- src/store_dir.cc 2010-10-01 05:29:18 +0000 +++ src/store_dir.cc 2010-10-17 11:34:44 +0000 @@ -361,14 +361,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); - // XXX : below capacity display calculation breaks with int overflow on 64-bit systems - 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 */ @@ -376,14 +375,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 ? */ @@ -829,22 +828,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-10-18 00:29:47 +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-10-18 00:28:35 +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-10 08:02:53 +0000 +++ src/tests/testStore.cc 2010-10-18 00:26:55 +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-10 08:02:53 +0000 +++ src/tests/testStore.h 2010-10-17 22:57:54 +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 */