]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/private.h
tdb2: fix run-summary test
[ccan] / ccan / tdb2 / private.h
index 091928095eba3daaf50323302fc0f59a277a0e7f..c0377363c6ac14a705868f5c74beca86f213ff84 100644 (file)
@@ -113,6 +113,10 @@ typedef uint64_t tdb_off_t;
 #define TDB_OFF_MASK \
        (((1ULL << (64 - TDB_OFF_UPPER_STEAL)) - 1) - TDB_OFF_HASH_GROUP_MASK)
 
+/* We have to be able to fit a free record here. */
+#define TDB_MIN_DATA_LEN       \
+       (sizeof(struct tdb_free_record) - sizeof(struct tdb_used_record))
+
 /* We ensure buckets up to size 1 << (zone_bits - TDB_COMFORT_FACTOR_BITS). */
 /* FIXME: test this matches size_to_bucket! */
 #define BUCKETS_FOR_ZONE(zone_bits) ((zone_bits) + 2 - TDB_COMFORT_FACTOR_BITS)
@@ -282,9 +286,12 @@ struct tdb_context {
        /* How much space has been mapped (<= current file size) */
        tdb_len_t map_size;
 
-       /* Opened read-only? */
+       /* Operating read-only? (Opened O_RDONLY, or in traverse_read) */
        bool read_only;
 
+       /* mmap read only? */
+       int mmap_flags;
+
        /* Error code for last tdb error. */
        enum TDB_ERROR ecode; 
 
@@ -346,7 +353,8 @@ tdb_off_t find_and_lock(struct tdb_context *tdb,
                        struct tdb_data key,
                        int ltype,
                        struct hash_info *h,
-                       struct tdb_used_record *rec);
+                       struct tdb_used_record *rec,
+                       struct traverse_info *tinfo);
 
 int replace_in_hash(struct tdb_context *tdb,
                    struct hash_info *h,