X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Fprivate.h;h=19d7866d2512275ac1ea752691ea3c0a9cf4e995;hb=bee60dd0ffe0b1b5821061b4384000c4246f2051;hp=a241210bebc0a559a087881f11d1d413c364656d;hpb=6804501c350181dea8f531142b28c620b70edbd9;p=ccan diff --git a/ccan/tdb2/private.h b/ccan/tdb2/private.h index a241210b..19d7866d 100644 --- a/ccan/tdb2/private.h +++ b/ccan/tdb2/private.h @@ -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,