X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Flayout.h;h=216fe297a8fa6b84aa8312dce37d9da76f042855;hb=d70577b6aff24ccf6815896509dabb8c9ac07904;hp=c8991baf67e2acc45837138047c0237aa3e990f6;hpb=cb399d268c839dd75a59678268f3ba666147cc20;p=ccan diff --git a/ccan/tdb2/test/layout.h b/ccan/tdb2/test/layout.h index c8991baf..216fe297 100644 --- a/ccan/tdb2/test/layout.h +++ b/ccan/tdb2/test/layout.h @@ -2,23 +2,22 @@ #define TDB2_TEST_LAYOUT_H #include -struct tdb_layout *new_tdb_layout(void); +struct tdb_layout *new_tdb_layout(const char *filename); +void tdb_layout_add_freelist(struct tdb_layout *layout); 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, tdb_len_t extra); +#if 0 /* FIXME: Allow allocation of subtables */ 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, + int htable_parent, /* -1 == toplevel */ + unsigned int bucket, tdb_len_t extra); +#endif struct tdb_context *tdb_layout_get(struct tdb_layout *layout); enum layout_type { - FREE, DATA, HASHTABLE, FREETABLE, + FREELIST, FREE, DATA, HASHTABLE, }; /* Shared by all union members. */ @@ -27,6 +26,10 @@ struct tle_base { tdb_off_t off; }; +struct tle_freelist { + struct tle_base base; +}; + struct tle_free { struct tle_base base; tdb_len_t len; @@ -41,29 +44,22 @@ struct tle_used { struct tle_hashtable { struct tle_base base; - unsigned hash_bits; - tdb_len_t extra; -}; - -struct tle_freetable { - struct tle_base base; - unsigned int num_zones; - unsigned int zone_bits; - unsigned int num_buckets; + int parent; + unsigned int bucket; tdb_len_t extra; }; union tdb_layout_elem { struct tle_base base; + struct tle_freelist flist; struct tle_free free; struct tle_used used; - struct tle_freetable freetable; struct tle_hashtable hashtable; }; struct tdb_layout { + const char *filename; unsigned int num_elems; union tdb_layout_elem *elem; - unsigned int ftable, htable; }; #endif /* TDB2_TEST_LAYOUT_H */