diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/cache_cf.cc ./cache_cf.cc
--- ../../my-squid3-largeobj/src/cache_cf.cc	2007-05-02 19:08:48.000000000 +0300
+++ ./cache_cf.cc	2007-05-11 22:11:00.000000000 +0300
@@ -144,6 +144,7 @@
 #endif
 #endif /* USE_SSL */
 static void parse_b_size_t(size_t * var);
+static void parse_b_int64_t(int64_t * var);
 
 /*
  * LegacyParser is a parser for legacy code that uses the global
@@ -163,7 +164,7 @@
 update_maxobjsize(void)
 {
     int i;
-    ssize_t ms = -1;
+    int64_t ms = -1;
 
     for (i = 0; i < Config.cacheSwap.n_configured; i++) {
         assert (Config.cacheSwap.swapDirs[i].getRaw());
@@ -172,7 +173,6 @@
                 max_objsize > ms)
             ms = dynamic_cast<SwapDir *>(Config.cacheSwap.swapDirs[i].getRaw())->max_objsize;
     }
-
     store_maxobjsize = ms;
 }
 
@@ -701,12 +701,51 @@
 }
 
 static void
+parseBytesLine64(int64_t * bptr, const char *units)
+{
+    char *token;
+    double d;
+    int64_t m;
+    int64_t u;
+
+    if ((u = parseBytesUnits(units)) == 0)
+        self_destruct();
+
+    if ((token = strtok(NULL, w_space)) == NULL)
+        self_destruct();
+
+    if (strcmp(token, "none") == 0 || strcmp(token, "-1") == 0) {
+        *bptr = static_cast<size_t>(-1);
+        return;
+    }
+
+    d = xatof(token);
+
+    m = u;			/* default to 'units' if none specified */
+
+    if (0.0 == d)
+        (void) 0;
+    else if ((token = strtok(NULL, w_space)) == NULL)
+        debugs(3, 0, "WARNING: No units on '" << 
+                     config_input_line << "', assuming " <<
+                     d << " " <<  units  );
+    else if ((m = parseBytesUnits(token)) == 0)
+        self_destruct();
+
+    *bptr = static_cast<int64_t>(m * d / u);
+
+    if (static_cast<double>(*bptr) * 2 != m * d / u * 2)
+        self_destruct();
+}
+
+
+static void
 parseBytesLine(size_t * bptr, const char *units)
 {
     char *token;
     double d;
-    size_t m;
-    size_t u;
+    int m;
+    int u;
 
     if ((u = parseBytesUnits(units)) == 0)
         self_destruct();
@@ -1029,7 +1068,7 @@
 
     l = cbdataAlloc(acl_size_t);
 
-    parse_b_size_t(&l->size);
+    parse_b_int64_t(&l->size);
 
     aclParseAclList(LegacyParser, &l->aclList);
 
@@ -2287,6 +2326,12 @@
 }
 
 static void
+dump_b_int64_t(StoreEntry * entry, const char *name, int64_t var)
+{
+    storeAppendPrintf(entry, "%s %"PRId64" %s\n", name, var, B_BYTES_STR);
+}
+
+static void
 parse_size_t(size_t * var)
 {
     int i;
@@ -2301,6 +2346,12 @@
 }
 
 static void
+parse_b_int64_t(int64_t * var)
+{
+    parseBytesLine64(var, B_BYTES_STR);
+}
+
+static void
 parse_kb_size_t(size_t * var)
 {
     parseBytesLine(var, B_KBYTES_STR);
@@ -2312,6 +2363,12 @@
     *var = 0;
 }
 
+static void
+free_b_int64_t(int64_t * var)
+{
+    *var = 0;
+}
+
 #define free_b_size_t free_size_t
 #define free_kb_size_t free_size_t
 #define free_mb_size_t free_size_t
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/cf.data ./cf.data
--- ../../my-squid3-largeobj/src/cf.data	2007-05-09 20:13:51.000000000 +0300
+++ ./cf.data	2007-05-13 11:03:30.000000000 +0300
@@ -936,7 +936,7 @@
 
 NAME: maximum_object_size
 COMMENT: (bytes)
-TYPE: b_size_t
+TYPE: b_int64_t
 DEFAULT: 4096 KB
 LOC: Config.Store.maxObjectSize
 DOC_START
@@ -954,7 +954,7 @@
 
 NAME: minimum_object_size
 COMMENT: (bytes)
-TYPE: b_size_t
+TYPE: b_int64_t
 DEFAULT: 0 KB
 LOC: Config.Store.minObjectSize
 DOC_START
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/cf.data.pre ./cf.data.pre
--- ../../my-squid3-largeobj/src/cf.data.pre	2007-04-17 02:06:16.000000000 +0300
+++ ./cf.data.pre	2007-05-11 22:22:19.000000000 +0300
@@ -936,7 +936,7 @@
 
 NAME: maximum_object_size
 COMMENT: (bytes)
-TYPE: b_size_t
+TYPE: b_int64_t
 DEFAULT: 4096 KB
 LOC: Config.Store.maxObjectSize
 DOC_START
@@ -954,7 +954,7 @@
 
 NAME: minimum_object_size
 COMMENT: (bytes)
-TYPE: b_size_t
+TYPE: b_int64_t
 DEFAULT: 0 KB
 LOC: Config.Store.minObjectSize
 DOC_START
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/cf_parser.h ./cf_parser.h
--- ../../my-squid3-largeobj/src/cf_parser.h	2007-05-09 20:13:51.000000000 +0300
+++ ./cf_parser.h	2007-05-13 11:03:30.000000000 +0300
@@ -667,11 +667,11 @@
 		return 1;
 	};
 	if (!strcmp(token, "maximum_object_size")) {
-		parse_b_size_t(&Config.Store.maxObjectSize);
+		parse_b_int64_t(&Config.Store.maxObjectSize);
 		return 1;
 	};
 	if (!strcmp(token, "minimum_object_size")) {
-		parse_b_size_t(&Config.Store.minObjectSize);
+		parse_b_int64_t(&Config.Store.minObjectSize);
 		return 1;
 	};
 	if (!strcmp(token, "maximum_object_size_in_memory")) {
@@ -1784,8 +1784,8 @@
 	dump_b_size_t(entry, "cache_mem", Config.memMaxSize);
 	dump_int(entry, "cache_swap_low", Config.Swap.lowWaterMark);
 	dump_int(entry, "cache_swap_high", Config.Swap.highWaterMark);
-	dump_b_size_t(entry, "maximum_object_size", Config.Store.maxObjectSize);
-	dump_b_size_t(entry, "minimum_object_size", Config.Store.minObjectSize);
+	dump_b_int64_t(entry, "maximum_object_size", Config.Store.maxObjectSize);
+	dump_b_int64_t(entry, "minimum_object_size", Config.Store.minObjectSize);
 	dump_b_size_t(entry, "maximum_object_size_in_memory", Config.Store.maxInMemObjSize);
 	dump_int(entry, "ipcache_size", Config.ipcache.size);
 	dump_int(entry, "ipcache_low", Config.ipcache.low);
@@ -2199,8 +2199,8 @@
 	free_b_size_t(&Config.memMaxSize);
 	free_int(&Config.Swap.lowWaterMark);
 	free_int(&Config.Swap.highWaterMark);
-	free_b_size_t(&Config.Store.maxObjectSize);
-	free_b_size_t(&Config.Store.minObjectSize);
+	free_b_int64_t(&Config.Store.maxObjectSize);
+	free_b_int64_t(&Config.Store.minObjectSize);
 	free_b_size_t(&Config.Store.maxInMemObjSize);
 	free_int(&Config.ipcache.size);
 	free_int(&Config.ipcache.low);
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/coss/CossSwapDir.h ./fs/coss/CossSwapDir.h
--- ../../my-squid3-largeobj/src/fs/coss/CossSwapDir.h	2006-05-23 03:45:42.000000000 +0300
+++ ./fs/coss/CossSwapDir.h	2007-05-12 19:58:20.000000000 +0300
@@ -73,9 +73,9 @@
     unsigned int blksz_mask;  /* just 1<<blksz_bits - 1*/
     DiskIOStrategy *io;
     RefCount<DiskFile> theFile;
-    char *storeCossMemPointerFromDiskOffset(size_t offset, CossMemBuf ** mb);
+    char *storeCossMemPointerFromDiskOffset(off_t offset, CossMemBuf ** mb);
     void storeCossMemBufUnlock(StoreIOState::Pointer);
-    CossMemBuf *createMemBuf(size_t start, sfileno curfn, int *collision);
+    CossMemBuf *createMemBuf(off_t start, sfileno curfn, int *collision);
     sfileno allocate(const StoreEntry * e, int which);
     void startMembuf();
 
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/coss/store_coss.h ./fs/coss/store_coss.h
--- ../../my-squid3-largeobj/src/fs/coss/store_coss.h	2006-09-19 11:52:40.000000000 +0300
+++ ./fs/coss/store_coss.h	2007-05-12 21:41:55.000000000 +0300
@@ -24,8 +24,8 @@
     void maybeWrite(CossSwapDir * SD);
     void write(CossSwapDir * SD);
     dlink_node node;
-    size_t diskstart;		/* in blocks */
-    size_t diskend;		/* in blocks */
+    off_t diskstart;		/* in blocks */
+    off_t diskend;		/* in blocks */
     CossSwapDir *SD;
     int lockcount;
     char buffer[COSS_MEMBUF_SZ];
@@ -61,7 +61,7 @@
     char *requestbuf;
     size_t requestlen;
     size_t requestoffset;	/* in blocks */
-    sfileno reqdiskoffset;	/* in blocks */
+    int64_t reqdiskoffset;	/* in blocks */
 
     struct
     {
@@ -76,7 +76,7 @@
     flags;
 
     CossMemBuf *locked_membuf;
-    size_t st_size;
+    off_t st_size;
     void read_(char *buf, size_t size, off_t offset, STRCB * callback, void *callback_data);
     void write(char const *buf, size_t size, off_t offset, FREE * free_func);
     void close();
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/coss/store_dir_coss.cc ./fs/coss/store_dir_coss.cc
--- ../../my-squid3-largeobj/src/fs/coss/store_dir_coss.cc	2007-05-02 19:09:03.000000000 +0300
+++ ./fs/coss/store_dir_coss.cc	2007-05-13 11:04:28.000000000 +0300
@@ -81,7 +81,7 @@
 static EVH storeCossRebuildFromSwapLog;
 static StoreEntry *storeCossAddDiskRestore(CossSwapDir * SD, const cache_key * key,
         int file_number,
-        size_t swap_file_sz,
+        uint64_t swap_file_sz,
         time_t expires,
         time_t timestamp,
         time_t lastref,
@@ -514,7 +514,7 @@
 static StoreEntry *
 storeCossAddDiskRestore(CossSwapDir * SD, const cache_key * key,
                         int file_number,
-                        size_t swap_file_sz,
+                        uint64_t swap_file_sz,
                         time_t expires,
                         time_t timestamp,
                         time_t lastref,
@@ -1034,7 +1034,7 @@
 {
     unsigned int i;
     unsigned int size;
-    unsigned long max_offset;
+    off_t max_offset;
 
     i = GetInteger();
     size = i << 10;		/* Mbytes to Kbytes */
@@ -1066,9 +1066,9 @@
      * largest possible sfileno, assuming sfileno is a 25-bit
      * signed integer, as defined in structs.h.
      */
-    max_offset = (unsigned long) 0xFFFFFF << blksz_bits;
+    max_offset = (off_t) 0xFFFFFF << blksz_bits;
 
-    if ((unsigned long)max_size > (unsigned long)(max_offset>>10)) {
+    if ((off_t)max_size > (max_offset>>10)) {
         debugs(47, 0, "COSS block-size = " << (1<<blksz_bits) << " bytes");
         debugs(47,0, "COSS largest file offset = " << (max_offset >> 10) << " KB");
         debugs(47, 0, "COSS cache_dir size = " << max_size << " KB");
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/coss/store_io_coss.cc ./fs/coss/store_io_coss.cc
--- ../../my-squid3-largeobj/src/fs/coss/store_io_coss.cc	2007-05-02 19:09:03.000000000 +0300
+++ ./fs/coss/store_io_coss.cc	2007-05-12 22:16:18.000000000 +0300
@@ -163,9 +163,9 @@
     sio->swap_dirn = index;
     sio->swap_filen = allocate(&e, COSS_ALLOC_ALLOCATE);
     debugs(79, 3, "storeCossCreate: offset " <<
-           (long int) storeCossFilenoToDiskOffset(sio->swap_filen) <<
+           storeCossFilenoToDiskOffset(sio->swap_filen) <<
            ", size " << (long int) cstate->st_size << ", end " <<
-           (long int) (sio->swap_filen + cstate->st_size));
+           (sio->swap_filen + cstate->st_size));
 
     /* assume allocate() always succeeds */
     assert(-1 != sio->swap_filen);
@@ -431,7 +431,7 @@
 }
 
 char *
-CossSwapDir::storeCossMemPointerFromDiskOffset(size_t offset, CossMemBuf ** mb)
+CossSwapDir::storeCossMemPointerFromDiskOffset(off_t offset, CossMemBuf ** mb)
 {
     CossMemBuf *t;
     dlink_node *m;
@@ -539,7 +539,7 @@
 }
 
 CossMemBuf *
-CossSwapDir::createMemBuf(size_t start, sfileno curfn, int *collision)
+CossSwapDir::createMemBuf(off_t start, sfileno curfn, int *collision)
 {
     CossMemBuf *newmb;
     CossMemBuf *t;
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/ufs/store_dir_ufs.cc ./fs/ufs/store_dir_ufs.cc
--- ../../my-squid3-largeobj/src/fs/ufs/store_dir_ufs.cc	2007-05-02 19:09:03.000000000 +0300
+++ ./fs/ufs/store_dir_ufs.cc	2007-05-12 10:12:14.000000000 +0300
@@ -682,7 +682,7 @@
 StoreEntry *
 UFSSwapDir::addDiskRestore(const cache_key * key,
                            sfileno file_number,
-                           size_t swap_file_sz,
+                           int64_t swap_file_sz,
                            time_t expires,
                            time_t timestamp,
                            time_t lastref,
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/ufs/ufscommon.cc ./fs/ufs/ufscommon.cc
--- ../../my-squid3-largeobj/src/fs/ufs/ufscommon.cc	2007-05-02 19:09:04.000000000 +0300
+++ ./fs/ufs/ufscommon.cc	2007-05-12 21:46:40.000000000 +0300
@@ -230,13 +230,13 @@
         /* check sizes */
 
         if (tmpe.swap_file_sz == 0) {
-            tmpe.swap_file_sz = (size_t) sb.st_size;
-        } else if (tmpe.swap_file_sz == (size_t)(sb.st_size - swap_hdr_len)) {
-            tmpe.swap_file_sz = (size_t) sb.st_size;
-        } else if (tmpe.swap_file_sz != (size_t)sb.st_size) {
+            tmpe.swap_file_sz = (uint64_t) sb.st_size;
+        } else if (tmpe.swap_file_sz == (uint64_t)(sb.st_size - swap_hdr_len)) {
+            tmpe.swap_file_sz = (uint64_t) sb.st_size;
+        } else if (tmpe.swap_file_sz != (uint64_t)sb.st_size) {
             debugs(47, 1, "commonUfsDirRebuildFromDirectory: SIZE MISMATCH " <<
-                   (long int) tmpe.swap_file_sz << "!=" <<
-                   (long int) sb.st_size);
+                   tmpe.swap_file_sz << "!=" <<
+                   sb.st_size);
 
             sd->unlinkFile(filn);
             continue;
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/fs/ufs/ufscommon.h ./fs/ufs/ufscommon.h
--- ../../my-squid3-largeobj/src/fs/ufs/ufscommon.h	2006-09-14 04:50:33.000000000 +0300
+++ ./fs/ufs/ufscommon.h	2007-05-12 10:12:52.000000000 +0300
@@ -97,7 +97,7 @@
     void mapBitSet(sfileno filn);
     StoreEntry *addDiskRestore(const cache_key * key,
                                sfileno file_number,
-                               size_t swap_file_sz,
+                               int64_t swap_file_sz,
                                time_t expires,
                                time_t timestamp,
                                time_t lastref,
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/globals.cc ./globals.cc
--- ../../my-squid3-largeobj/src/globals.cc	2007-04-28 16:21:04.000000000 +0300
+++ ./globals.cc	2007-05-10 20:34:00.000000000 +0300
@@ -142,7 +142,7 @@
 int store_swap_low = 0;
 int store_swap_high = 0;
 size_t store_pages_max = 0;
-ssize_t store_maxobjsize = -1;
+int64_t store_maxobjsize = -1;
 hash_table *proxy_auth_username_cache = NULL;
 int incoming_sockets_accepted;
 #ifdef _SQUID_MSWIN_
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/globals.h ./globals.h
--- ../../my-squid3-largeobj/src/globals.h	2007-04-15 18:00:41.000000000 +0300
+++ ./globals.h	2007-05-10 20:33:37.000000000 +0300
@@ -156,7 +156,7 @@
     extern int store_swap_low;	/* 0 */
     extern int store_swap_high;	/* 0 */
     extern size_t store_pages_max;	/* 0 */
-    extern ssize_t store_maxobjsize;	/* -1 */
+    extern int64_t store_maxobjsize;	/* -1 */
     extern hash_table *proxy_auth_username_cache;	/* NULL */
     extern int incoming_sockets_accepted;
 #ifdef _SQUID_MSWIN_
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/MemObject.h ./MemObject.h
--- ../../my-squid3-largeobj/src/MemObject.h	2007-04-21 01:53:46.000000000 +0300
+++ ./MemObject.h	2007-05-10 21:31:54.000000000 +0300
@@ -130,7 +130,7 @@
     char *log_url;
     RemovalPolicyNode repl;
     int id;
-    ssize_t object_sz;
+    int64_t object_sz;
     size_t swap_hdr_sz;
 #if URL_CHECKSUM_DEBUG
 
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/store.cc ./store.cc
--- ../../my-squid3-largeobj/src/store.cc	2007-05-09 18:48:17.000000000 +0300
+++ ./store.cc	2007-05-12 12:19:22.000000000 +0300
@@ -940,11 +940,10 @@
 
     if (STORE_OK == store_status)
         if (mem_obj->object_sz < 0 ||
-                static_cast<size_t>(mem_obj->object_sz)
-                < Config.Store.minObjectSize)
+	    mem_obj->object_sz < Config.Store.minObjectSize)
             return 1;
     if (getReply()->content_length > -1)
-        if (getReply()->content_length < (int) Config.Store.minObjectSize)
+        if (getReply()->content_length < Config.Store.minObjectSize)
             return 1;
     return 0;
 }
@@ -970,12 +969,12 @@
             store_check_cachable_hist.no.negative_cached++;
             return 0;           /* avoid release call below */
         } else if ((getReply()->content_length > 0 &&
-                    static_cast<size_t>(getReply()->content_length)
+                    getReply()->content_length
                     > Config.Store.maxObjectSize) ||
-                   static_cast<size_t>(mem_obj->endOffset()) > Config.Store.maxObjectSize) {
+                   mem_obj->endOffset() > Config.Store.maxObjectSize) {
             debugs(20, 2, "StoreEntry::checkCachable: NO: too big");
             store_check_cachable_hist.no.too_big++;
-        } else if (getReply()->content_length > (int) Config.Store.maxObjectSize) {
+        } else if (getReply()->content_length > Config.Store.maxObjectSize) {
             debugs(20, 2, "StoreEntry::checkCachable: NO: too big");
             store_check_cachable_hist.no.too_big++;
         } else if (checkTooSmall()) {
@@ -1356,7 +1355,7 @@
 bool
 StoreEntry::validLength() const
 {
-    int diff;
+    int64_t diff;
     const HttpReply *reply;
     assert(mem_obj != NULL);
     reply = getReply();
@@ -1659,7 +1658,7 @@
     }
 }
 
-ssize_t
+int64_t
 StoreEntry::objectLen() const
 {
     assert(mem_obj != NULL);
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/store_digest.cc ./store_digest.cc
--- ../../my-squid3-largeobj/src/store_digest.cc	2007-05-02 19:09:00.000000000 +0300
+++ ./store_digest.cc	2007-05-12 22:01:54.000000000 +0300
@@ -247,7 +247,7 @@
     }
 
     /* do not digest huge objects */
-    if (e->swap_file_sz > Config.Store.maxObjectSize) {
+    if (e->swap_file_sz > (uint64_t )Config.Store.maxObjectSize) {
         debugs(71, 6, "storeDigestAddable: NO: too big");
         return 0;
     }
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/store_dir.cc ./store_dir.cc
--- ../../my-squid3-largeobj/src/store_dir.cc	2007-05-02 19:09:00.000000000 +0300
+++ ./store_dir.cc	2007-05-10 21:48:22.000000000 +0300
@@ -330,13 +330,13 @@
 }
 
 void
-StoreController::updateSize(size_t size, int sign)
+StoreController::updateSize(int64_t size, int sign)
 {
     fatal("StoreController has no independent size\n");
 }
 
 void
-SwapDir::updateSize(size_t size, int sign)
+SwapDir::updateSize(int64_t size, int sign)
 {
     int blks = (size + fs.blksize - 1) / fs.blksize;
     int k = (blks * fs.blksize >> 10) * sign;
@@ -882,7 +882,7 @@
 }
 
 void
-StoreHashIndex::updateSize(size_t, int)
+StoreHashIndex::updateSize(int64_t, int)
 {}
 
 void
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/Store.h ./Store.h
--- ../../my-squid3-largeobj/src/Store.h	2007-04-23 09:19:30.000000000 +0300
+++ ./Store.h	2007-05-12 17:58:13.000000000 +0300
@@ -127,7 +127,7 @@
     time_t lastref;
     time_t expires;
     time_t lastmod;
-    size_t swap_file_sz;
+    uint64_t swap_file_sz;
     u_short refcount;
     u_short flags;
     /* END OF ON-DISK STORE_META_STD */
@@ -178,7 +178,7 @@
     /* reduce the memory lock count on the entry */
     virtual int unlock();
     /* increate the memory lock count on the entry */
-    virtual ssize_t objectLen() const;
+    virtual int64_t objectLen() const;
     virtual int64_t contentLen() const;
 
     virtual void lock()
@@ -292,7 +292,7 @@
     virtual void maintain() = 0; /* perform regular maintenance should be private and self registered ... */
 
     /* These should really be private */
-    virtual void updateSize(size_t size, int sign) = 0;
+    virtual void updateSize(int64_t size, int sign) = 0;
 
 private:
     static RefCount<Store> CurrentRoot;
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/StoreHashIndex.h ./StoreHashIndex.h
--- ../../my-squid3-largeobj/src/StoreHashIndex.h	2005-07-04 05:14:11.000000000 +0300
+++ ./StoreHashIndex.h	2007-05-10 21:47:21.000000000 +0300
@@ -75,7 +75,7 @@
 
     virtual void maintain();
 
-    virtual void updateSize(size_t, int);
+    virtual void updateSize(int64_t, int);
 
     virtual StoreSearch *search(String const url, HttpRequest *);
 
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/StoreSwapLogData.h ./StoreSwapLogData.h
--- ../../my-squid3-largeobj/src/StoreSwapLogData.h	2004-08-31 05:14:26.000000000 +0300
+++ ./StoreSwapLogData.h	2007-05-12 17:58:20.000000000 +0300
@@ -57,7 +57,7 @@
     time_t lastref;
     time_t expires;
     time_t lastmod;
-    size_t swap_file_sz;
+    uint64_t swap_file_sz;
     u_short refcount;
     u_short flags;
     unsigned char key[MD5_DIGEST_CHARS];
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/structs.h ./structs.h
--- ../../my-squid3-largeobj/src/structs.h	2007-04-16 21:05:01.000000000 +0300
+++ ./structs.h	2007-05-11 22:06:39.000000000 +0300
@@ -107,7 +107,7 @@
 {
     acl_size_t *next;
     acl_list *aclList;
-    size_t size;
+    int64_t size;
 };
 
 struct _ushortlist
@@ -476,8 +476,8 @@
     {
         int objectsPerBucket;
         size_t avgObjectSize;
-        size_t maxObjectSize;
-        size_t minObjectSize;
+        int64_t maxObjectSize;
+        int64_t minObjectSize;
         size_t maxInMemObjSize;
     }
 
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/SwapDir.cc ./SwapDir.cc
--- ../../my-squid3-largeobj/src/SwapDir.cc	2007-05-02 19:08:48.000000000 +0300
+++ ./SwapDir.cc	2007-05-10 20:51:00.000000000 +0300
@@ -245,7 +245,7 @@
     if (!value)
         self_destruct();
 
-    ssize_t size = xatoi(value);
+    int64_t size = strtoll(value, NULL, 10);
 
     if (reconfiguring && max_objsize != size)
         debugs(3, 1, "Cache dir '" << path << "' max object size now " << size);
@@ -259,7 +259,7 @@
 SwapDir::optionMaxSizeDump(StoreEntry * e) const
 {
     if (max_objsize != -1)
-        storeAppendPrintf(e, " max-size=%ld", (long int) max_objsize);
+        storeAppendPrintf(e, " max-size=%"PRId64, max_objsize);
 }
 
 /* Swapdirs do not have an index of their own - thus they ask their parent..
diff -r -u -x 'Makefile*' -x '*.Po' -x '*.o' -x '*~' -x '*.la' ../../my-squid3-largeobj/src/SwapDir.h ./SwapDir.h
--- ../../my-squid3-largeobj/src/SwapDir.h	2006-08-21 04:51:49.000000000 +0300
+++ ./SwapDir.h	2007-05-10 21:47:51.000000000 +0300
@@ -80,7 +80,7 @@
 
     virtual void dereference(StoreEntry &);	/* Unreference this object */
 
-    virtual void updateSize(size_t size, int sign);
+    virtual void updateSize(int64_t size, int sign);
 
     /* the number of store dirs being rebuilt. */
     static int store_dirs_rebuilding;
@@ -142,7 +142,7 @@
     virtual void stat (StoreEntry &anEntry) const;
     virtual StoreSearch *search(String const url, HttpRequest *) = 0;
 
-    virtual void updateSize(size_t size, int sign);
+    virtual void updateSize(int64_t size, int sign);
 
     /* migrated from store_dir.cc */
     bool objectSizeIsAcceptable(ssize_t objsize) const;
@@ -164,7 +164,7 @@
     int max_size;
     char *path;
     int index;			/* This entry's index into the swapDirs array */
-    ssize_t max_objsize;
+    int64_t max_objsize;
     RemovalPolicy *repl;
     int removals;
     int scanned;

