]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/private.h
tdb2: add missing prototype, move tdb_firstkey/tdb_nextkey to traverse.c
[ccan] / ccan / tdb2 / private.h
index a241210bebc0a559a087881f11d1d413c364656d..19d7866d2512275ac1ea752691ea3c0a9cf4e995 100644 (file)
@@ -242,7 +242,6 @@ struct hash_info {
 struct traverse_info {
        struct traverse_level {
                tdb_off_t hashtable;
-               const tdb_off_t *entries;
                /* We ignore groups here, and treat it as a big array. */
                unsigned entry;
                unsigned int total_buckets;
@@ -283,9 +282,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; 
 
@@ -347,7 +349,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,
@@ -418,9 +421,11 @@ int tdb_write_off(struct tdb_context *tdb, tdb_off_t off, tdb_off_t val);
 /* Clear an ondisk area. */
 int zero_out(struct tdb_context *tdb, tdb_off_t off, tdb_len_t len);
 
-/* Return a non-zero offset in this array, or num. */
-tdb_off_t tdb_find_nonzero_off(struct tdb_context *tdb, tdb_off_t off,
-                              uint64_t num);
+/* Return a non-zero offset between >= start < end in this array (or end). */
+tdb_off_t tdb_find_nonzero_off(struct tdb_context *tdb,
+                              tdb_off_t base,
+                              uint64_t start,
+                              uint64_t end);
 
 /* Return a zero offset in this array, or num. */
 tdb_off_t tdb_find_zero_off(struct tdb_context *tdb, tdb_off_t off,