]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/private.h
tdb2: only adjust size once when growing
[ccan] / ccan / tdb2 / private.h
index 6c727aff4a20a62dc800e5806079742cd32d7ec1..5e71bc2da46e1af4ec97c37489e1142cb62f9fe8 100644 (file)
@@ -65,6 +65,7 @@ typedef uint64_t tdb_off_t;
 #define TDB_VERSION ((uint64_t)(0x26011967 + 7))
 #define TDB_MAGIC ((uint64_t)0x1999)
 #define TDB_FREE_MAGIC ((~(uint64_t)TDB_MAGIC) << 6)
+#define TDB_COALESCING_MAGIC (0xBAD1DEA2FEEDULL << 6)
 #define TDB_HASH_MAGIC (0xA1ABE11A01092008ULL)
 #define TDB_RECOVERY_MAGIC (0xf53bc0e7U)
 #define TDB_RECOVERY_INVALID_MAGIC (0x0)
@@ -331,6 +332,7 @@ struct tdb_methods {
        int (*write)(struct tdb_context *, tdb_off_t, const void *, tdb_len_t);
        int (*oob)(struct tdb_context *, tdb_off_t, bool);
        int (*expand_file)(struct tdb_context *, tdb_len_t);
+       void *(*direct)(struct tdb_context *, tdb_off_t, size_t);
 };
 
 /*
@@ -380,7 +382,7 @@ int add_free_record(struct tdb_context *tdb, unsigned int zone_bits,
 int set_header(struct tdb_context *tdb,
               struct tdb_used_record *rec,
               uint64_t keylen, uint64_t datalen,
-              uint64_t actuallen, uint64_t hash,
+              uint64_t actuallen, unsigned hashlow,
               unsigned int zone_bits);
 
 /* Used by tdb_check to verify. */