X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Flayout.h;h=6e2e6657a70451050db62ee2879657e6e8cb9f8b;hp=7a9d319d16c8edafdc6ff03b221e0281f76c3b1a;hb=850c5cfed46cd4f38df79783791969c7b30ad9da;hpb=1a24a8708494668c07e5c02284bfc2ef3b09603b diff --git a/ccan/tdb2/test/layout.h b/ccan/tdb2/test/layout.h index 7a9d319d..6e2e6657 100644 --- a/ccan/tdb2/test/layout.h +++ b/ccan/tdb2/test/layout.h @@ -2,21 +2,24 @@ #define TDB2_TEST_LAYOUT_H #include -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); +struct tdb_layout *new_tdb_layout(const char *filename); +void tdb_layout_add_freetable(struct tdb_layout *layout); +void tdb_layout_add_free(struct tdb_layout *layout, tdb_len_t len, + unsigned ftable); void tdb_layout_add_used(struct tdb_layout *layout, TDB_DATA key, TDB_DATA data, tdb_len_t extra); +#if 0 /* FIXME: Allow allocation of subtables */ void tdb_layout_add_hashtable(struct tdb_layout *layout, - unsigned int hash_bits, + int htable_parent, /* -1 == toplevel */ + unsigned int bucket, tdb_len_t extra); +#endif struct tdb_context *tdb_layout_get(struct tdb_layout *layout); +void tdb_layout_free(struct tdb_layout *layout); enum layout_type { - ZONE, FREE, DATA, HASHTABLE, + FREETABLE, FREE, DATA, HASHTABLE, }; /* Shared by all union members. */ @@ -25,14 +28,14 @@ struct tle_base { tdb_off_t off; }; -struct tle_zone { +struct tle_freetable { struct tle_base base; - unsigned int zone_bits; }; struct tle_free { struct tle_base base; tdb_len_t len; + unsigned ftable_num; }; struct tle_used { @@ -44,21 +47,22 @@ struct tle_used { struct tle_hashtable { struct tle_base base; - unsigned hash_bits; + int parent; + unsigned int bucket; tdb_len_t extra; }; union tdb_layout_elem { struct tle_base base; - struct tle_zone zone; + struct tle_freetable ftable; struct tle_free free; struct tle_used used; struct tle_hashtable hashtable; }; struct tdb_layout { + const char *filename; unsigned int num_elems; union tdb_layout_elem *elem; - unsigned int htable; }; #endif /* TDB2_TEST_LAYOUT_H */