]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/store/forward.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / store / forward.h
index 8ae1894635467df62ea03e0d404b280f1491d968..210388ee865a83b51fcd8ec559447476a83ecbd8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
  *
  * Squid software is distributed under GPLv2+ license and includes
  * contributions from numerous individuals and organizations.
@@ -9,7 +9,17 @@
 #ifndef SQUID_STORE_FORWARD_H
 #define SQUID_STORE_FORWARD_H
 
-typedef int32_t sfileno;
+// bug 4610 see comments 22-38
+// Nasty hack, but it turns out C++ allows int32_t to be
+// unsigned when used as a bitmask (as sfile* are later)
+#if INT_MAX == INT32_MAX
+typedef signed int signed_int32_t;
+#elif SHORT_MAX == INT32_MAX
+typedef signed short int signed_int32_t;
+#else
+#error I do not know how to typedef a signed 32bit integer.
+#endif
+typedef signed_int32_t sfileno;
 typedef signed int sdirno;
 
 /// maximum number of entries per cache_dir
@@ -26,12 +36,16 @@ class Transients;
 
 namespace Store
 {
+/// cache "I/O" direction and status
+enum IoStatus { ioUndecided, ioWriting, ioReading, ioDone };
+
 class Storage;
 class Controller;
 class Controlled;
 class Disks;
 class Disk;
 class DiskConfig;
+class EntryGuard;
 
 typedef ::StoreEntry Entry;
 typedef ::MemStore Memory;