]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/layout.h
tdb2: use immobile free buckets, rename tests to show some ordering.
[ccan] / ccan / tdb2 / test / layout.h
index c8991baf67e2acc45837138047c0237aa3e990f6..7a9d319d16c8edafdc6ff03b221e0281f76c3b1a 100644 (file)
@@ -3,6 +3,9 @@
 #include <ccan/tdb2/private.h>
 
 struct tdb_layout *new_tdb_layout(void);
+void tdb_layout_add_zone(struct tdb_layout *layout,
+                        unsigned int zone_bits,
+                        bool fill_prev);
 void tdb_layout_add_free(struct tdb_layout *layout, tdb_len_t len);
 void tdb_layout_add_used(struct tdb_layout *layout,
                         TDB_DATA key, TDB_DATA data,
@@ -10,15 +13,10 @@ void tdb_layout_add_used(struct tdb_layout *layout,
 void tdb_layout_add_hashtable(struct tdb_layout *layout,
                              unsigned int hash_bits,
                              tdb_len_t extra);
-void tdb_layout_add_freetable(struct tdb_layout *layout,
-                             unsigned int num_zones,
-                             unsigned int zone_bits,
-                             unsigned int num_buckets,
-                             tdb_len_t extra);
 struct tdb_context *tdb_layout_get(struct tdb_layout *layout);
 
 enum layout_type {
-       FREE, DATA, HASHTABLE, FREETABLE,
+       ZONE, FREE, DATA, HASHTABLE,
 };
 
 /* Shared by all union members. */
@@ -27,6 +25,11 @@ struct tle_base {
        tdb_off_t off;
 };
 
+struct tle_zone {
+       struct tle_base base;
+       unsigned int zone_bits;
+};
+
 struct tle_free {
        struct tle_base base;
        tdb_len_t len;
@@ -45,25 +48,17 @@ struct tle_hashtable {
        tdb_len_t extra;
 };
 
-struct tle_freetable {
-       struct tle_base base;
-       unsigned int num_zones;
-       unsigned int zone_bits;
-       unsigned int num_buckets;
-       tdb_len_t extra;
-};
-
 union tdb_layout_elem {
        struct tle_base base;
+       struct tle_zone zone;
        struct tle_free free;
        struct tle_used used;
-       struct tle_freetable freetable;
        struct tle_hashtable hashtable;
 };
 
 struct tdb_layout {
        unsigned int num_elems;
        union tdb_layout_elem *elem;
-       unsigned int ftable, htable;
+       unsigned int htable;
 };
 #endif /* TDB2_TEST_LAYOUT_H */