]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/private.h
tdb2: remove tdb_null
[ccan] / ccan / tdb2 / private.h
index d1f12b5531ff6843a8f94bd8182cd7156709e765..4e7fc8ffeccaba5e2ab13348cf02a23bcbbb15bf 100644 (file)
@@ -301,6 +301,7 @@ enum tdb_lock_flags {
 };
 
 struct tdb_lock {
+       struct tdb_context *owner;
        uint32_t off;
        uint32_t count;
        uint32_t ltype;
@@ -319,6 +320,9 @@ struct tdb_file {
        /* Single list of all TDBs, to detect multiple opens. */
        struct tdb_file *next;
 
+       /* How many are sharing us? */
+       unsigned int refcnt;
+
        /* Mmap (if any), or malloc (for TDB_INTERNAL). */
        void *map_ptr;
 
@@ -536,6 +540,9 @@ enum TDB_ERROR tdb_unlock_hashes(struct tdb_context *tdb,
                                 tdb_off_t hash_lock,
                                 tdb_len_t hash_range, int ltype);
 
+/* For closing the file. */
+void tdb_unlock_all(struct tdb_context *tdb);
+
 /* Lock/unlock a particular free bucket. */
 enum TDB_ERROR tdb_lock_free_bucket(struct tdb_context *tdb, tdb_off_t b_off,
                                    enum tdb_lock_flags waitflag);