]> mj.ucw.cz Git - libucw.git/commitdiff
Binary fastbuf functions moved to lib/ff-binary.h.
authorMartin Mares <mj@ucw.cz>
Sat, 10 Mar 2007 20:00:09 +0000 (21:00 +0100)
committerMartin Mares <mj@ucw.cz>
Sat, 10 Mar 2007 20:00:09 +0000 (21:00 +0100)
lib/db-tool.c
lib/fastbuf.h
lib/ff-binary.c
lib/ff-binary.h [new file with mode: 0644]
lib/lizard-test.c
lib/qache.c
lib/redblack.h

index 8dca52049b73a6aaf4c94ff6d0dc417198240926..bbb419abf3e26ee70e00d66b6a9b6832b20a5fb1 100644 (file)
@@ -11,6 +11,7 @@
 #include "lib/db.h"
 #include "lib/db_internal.h"
 #include "lib/fastbuf.h"
+#include "lib/ff-binary.h"
 
 #include <stdio.h>
 #include <stdlib.h>
index 6961fd2c80152dd30897e4b9b03859a7d58ec367..83caf9211c72c9ab7345b10dbc01a7241ef670ea 100644 (file)
@@ -14,8 +14,6 @@
 #include <string.h>
 #include <alloca.h>
 
-#include "lib/unaligned.h"
-
 /*
  *  Generic buffered I/O. You supply hooks to be called for low-level operations
  *  (swapping of buffers, seeking and closing), we do the rest.
@@ -194,110 +192,6 @@ bavailw(struct fastbuf *f)
   return f->bufend - f->bptr;
 }
 
-int bgetw_slow(struct fastbuf *f);
-static inline int bgetw(struct fastbuf *f)
-{
-  int w;
-  if (bavailr(f) >= 2)
-    {
-      w = GET_U16(f->bptr);
-      f->bptr += 2;
-      return w;
-    }
-  else
-    return bgetw_slow(f);
-}
-
-u32 bgetl_slow(struct fastbuf *f);
-static inline u32 bgetl(struct fastbuf *f)
-{
-  u32 l;
-  if (bavailr(f) >= 4)
-    {
-      l = GET_U32(f->bptr);
-      f->bptr += 4;
-      return l;
-    }
-  else
-    return bgetl_slow(f);
-}
-
-u64 bgetq_slow(struct fastbuf *f);
-static inline u64 bgetq(struct fastbuf *f)
-{
-  u64 l;
-  if (bavailr(f) >= 8)
-    {
-      l = GET_U64(f->bptr);
-      f->bptr += 8;
-      return l;
-    }
-  else
-    return bgetq_slow(f);
-}
-
-u64 bget5_slow(struct fastbuf *f);
-static inline u64 bget5(struct fastbuf *f)
-{
-  u64 l;
-  if (bavailr(f) >= 5)
-    {
-      l = GET_U40(f->bptr);
-      f->bptr += 5;
-      return l;
-    }
-  else
-    return bget5_slow(f);
-}
-
-void bputw_slow(struct fastbuf *f, uns w);
-static inline void bputw(struct fastbuf *f, uns w)
-{
-  if (bavailw(f) >= 2)
-    {
-      PUT_U16(f->bptr, w);
-      f->bptr += 2;
-    }
-  else
-    bputw_slow(f, w);
-}
-
-void bputl_slow(struct fastbuf *f, u32 l);
-static inline void bputl(struct fastbuf *f, u32 l)
-{
-  if (bavailw(f) >= 4)
-    {
-      PUT_U32(f->bptr, l);
-      f->bptr += 4;
-    }
-  else
-    bputl_slow(f, l);
-}
-
-void bputq_slow(struct fastbuf *f, u64 l);
-static inline void bputq(struct fastbuf *f, u64 l)
-{
-  if (bavailw(f) >= 8)
-    {
-      PUT_U64(f->bptr, l);
-      f->bptr += 8;
-    }
-  else
-    bputq_slow(f, l);
-}
-
-void bput5_slow(struct fastbuf *f, u64 l);
-static inline void bput5(struct fastbuf *f, u64 l)
-{
-  if (bavailw(f) >= 5)
-    {
-      PUT_U40(f->bptr, l);
-      f->bptr += 5;
-    }
-  else
-    bput5_slow(f, l);
-}
-
 uns bread_slow(struct fastbuf *f, void *b, uns l, uns check);
 static inline uns bread(struct fastbuf *f, void *b, uns l)
 {
@@ -398,16 +292,6 @@ static inline int bskip(struct fastbuf *f, uns len)
     return bskip_slow(f, len);
 }
 
-/* I/O on uintptr_t */
-
-#ifdef CPU_64BIT_POINTERS
-#define bputa(x,p) bputq(x,p)
-#define bgeta(x) bgetq(x)
-#else
-#define bputa(x,p) bputl(x,p)
-#define bgeta(x) bgetl(x)
-#endif
-
 /* Direct I/O on buffers */
 
 static inline uns
index 2d088ccf84a63e67d6ebdb32f0a712ccd5e9c765..982cc8b73fc7e23eb65c2ccf62c402e74868f6b2 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "lib/lib.h"
 #include "lib/fastbuf.h"
+#include "lib/ff-binary.h"
 
 int bgetw_slow(struct fastbuf *f)
 {
diff --git a/lib/ff-binary.h b/lib/ff-binary.h
new file mode 100644 (file)
index 0000000..150413c
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ *     UCW Library -- Fast Buffered I/O on Binary Values
+ *
+ *     (c) 1997--2007 Martin Mares <mj@ucw.cz>
+ *     (c) 2004 Robert Spalek <robert@ucw.cz>
+ *
+ *     This software may be freely distributed and used according to the terms
+ *     of the GNU Lesser General Public License.
+ */
+
+#ifndef _UCW_FF_BINARY_H
+#define _UCW_FF_BINARY_H
+
+#include "lib/fastbuf.h"
+#include "lib/unaligned.h"
+
+int bgetw_slow(struct fastbuf *f);
+static inline int bgetw(struct fastbuf *f)
+{
+  int w;
+  if (bavailr(f) >= 2)
+    {
+      w = GET_U16(f->bptr);
+      f->bptr += 2;
+      return w;
+    }
+  else
+    return bgetw_slow(f);
+}
+
+u32 bgetl_slow(struct fastbuf *f);
+static inline u32 bgetl(struct fastbuf *f)
+{
+  u32 l;
+  if (bavailr(f) >= 4)
+    {
+      l = GET_U32(f->bptr);
+      f->bptr += 4;
+      return l;
+    }
+  else
+    return bgetl_slow(f);
+}
+
+u64 bgetq_slow(struct fastbuf *f);
+static inline u64 bgetq(struct fastbuf *f)
+{
+  u64 l;
+  if (bavailr(f) >= 8)
+    {
+      l = GET_U64(f->bptr);
+      f->bptr += 8;
+      return l;
+    }
+  else
+    return bgetq_slow(f);
+}
+
+u64 bget5_slow(struct fastbuf *f);
+static inline u64 bget5(struct fastbuf *f)
+{
+  u64 l;
+  if (bavailr(f) >= 5)
+    {
+      l = GET_U40(f->bptr);
+      f->bptr += 5;
+      return l;
+    }
+  else
+    return bget5_slow(f);
+}
+
+void bputw_slow(struct fastbuf *f, uns w);
+static inline void bputw(struct fastbuf *f, uns w)
+{
+  if (bavailw(f) >= 2)
+    {
+      PUT_U16(f->bptr, w);
+      f->bptr += 2;
+    }
+  else
+    bputw_slow(f, w);
+}
+
+void bputl_slow(struct fastbuf *f, u32 l);
+static inline void bputl(struct fastbuf *f, u32 l)
+{
+  if (bavailw(f) >= 4)
+    {
+      PUT_U32(f->bptr, l);
+      f->bptr += 4;
+    }
+  else
+    bputl_slow(f, l);
+}
+
+void bputq_slow(struct fastbuf *f, u64 l);
+static inline void bputq(struct fastbuf *f, u64 l)
+{
+  if (bavailw(f) >= 8)
+    {
+      PUT_U64(f->bptr, l);
+      f->bptr += 8;
+    }
+  else
+    bputq_slow(f, l);
+}
+
+void bput5_slow(struct fastbuf *f, u64 l);
+static inline void bput5(struct fastbuf *f, u64 l)
+{
+  if (bavailw(f) >= 5)
+    {
+      PUT_U40(f->bptr, l);
+      f->bptr += 5;
+    }
+  else
+    bput5_slow(f, l);
+}
+
+/* I/O on uintptr_t */
+
+#ifdef CPU_64BIT_POINTERS
+#define bputa(x,p) bputq(x,p)
+#define bgeta(x) bgetq(x)
+#else
+#define bputa(x,p) bputl(x,p)
+#define bgeta(x) bgetl(x)
+#endif
+
+#endif
index dd9c62c4c4888a890d18ec79089f05214db513f4..137cdc79249a5b7d725ca9b70978f46f3fdaa06e 100644 (file)
@@ -1,6 +1,7 @@
 #include "lib/lib.h"
 #include "lib/getopt.h"
 #include "lib/fastbuf.h"
+#include "lib/ff-binary.h"
 #include "lib/lizard.h"
 #include <stdio.h>
 #include <stdlib.h>
index c1a5024a114d3cc84606da7ed299bd673a82a8c5..eeea2b6b01d7ad121cef2ebbdfbe5317e87c6f38 100644 (file)
@@ -9,6 +9,7 @@
 #include "lib/lib.h"
 #include "lib/bitops.h"
 #include "lib/fastbuf.h"
+#include "lib/ff-binary.h"
 #include "lib/qache.h"
 
 #include <stdio.h>
index e278204856afa1c2ff6d4329fd013a2f666834d9..a89149b20afedaea67ff28ae7550fb634afa5c73 100644 (file)
  *  undef'd.
  */
 
+#include <stdio.h>
 #include <string.h>
 
 #if !defined(TREE_NODE) || !defined(TREE_PREFIX)