]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb/tdb_private.h
tdb2: Avoid a malloc/memcpy in _tdb1_store
[ccan] / ccan / tdb / tdb_private.h
index 7f3497975e5cb7f1d6a2aaa30a32d1b32ebfafe7..f1c841c257975857048fc14a3fdcc46a7f919741 100644 (file)
@@ -33,7 +33,7 @@
 #include "system/select.h"
 #include "system/wait.h"
 #else
-#define _XOPEN_SOURCE 500
+#include "config.h"
 #define _FILE_OFFSET_BITS 64
 #include <stdint.h>
 #include <stdbool.h>
@@ -46,7 +46,6 @@
 #include <errno.h>
 #include <stdio.h>
 #include <utime.h>
-#include "config.h"
 #endif
 #include "tdb.h"
 
@@ -72,7 +71,7 @@ typedef uint32_t tdb_len_t;
 typedef uint32_t tdb_off_t;
 
 #ifndef offsetof
-#define offsetof(t,f) ((unsigned int)&((t *)0)->f)
+#define offsetof(t,f) ((size_t)&((t *)0)->f)
 #endif
 
 #define TDB_MAGIC_FOOD "TDB file\n"
@@ -82,6 +81,7 @@ typedef uint32_t tdb_off_t;
 #define TDB_DEAD_MAGIC (0xFEE1DEAD)
 #define TDB_RECOVERY_MAGIC (0xf53bc0e7U)
 #define TDB_RECOVERY_INVALID_MAGIC (0x0)
+#define TDB_HASH_RWLOCK_MAGIC (0xbad1a51U)
 #define TDB_ALIGNMENT 4
 #define DEFAULT_HASH_SIZE 131
 #define FREELIST_TOP (sizeof(struct tdb_header))
@@ -298,9 +298,11 @@ tdb_off_t tdb_find_lock_hash(struct tdb_context *tdb, TDB_DATA key, uint32_t has
                           struct tdb_record *rec);
 void tdb_io_init(struct tdb_context *tdb);
 int tdb_expand(struct tdb_context *tdb, tdb_off_t size);
+tdb_off_t tdb_expand_adjust(tdb_off_t map_size, tdb_off_t size, int page_size);
 int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off,
                      struct tdb_record *rec);
 void tdb_header_hash(struct tdb_context *tdb,
                     uint32_t *magic1_hash, uint32_t *magic2_hash);
-
+unsigned int tdb_old_hash(TDB_DATA *key);
+size_t tdb_dead_space(struct tdb_context *tdb, tdb_off_t off);
 #endif