1 #ifndef TDB2_TEST_LAYOUT_H
2 #define TDB2_TEST_LAYOUT_H
3 #include <ccan/tdb2/private.h>
5 struct tdb_layout *new_tdb_layout(void);
6 void tdb_layout_add_free(struct tdb_layout *layout, tdb_len_t len);
7 void tdb_layout_add_used(struct tdb_layout *layout,
8 TDB_DATA key, TDB_DATA data,
10 void tdb_layout_add_hashtable(struct tdb_layout *layout,
11 unsigned int hash_bits,
13 void tdb_layout_add_freetable(struct tdb_layout *layout,
14 unsigned int num_zones,
15 unsigned int zone_bits,
16 unsigned int num_buckets,
18 struct tdb_context *tdb_layout_get(struct tdb_layout *layout);
21 FREE, DATA, HASHTABLE, FREETABLE,
24 /* Shared by all union members. */
26 enum layout_type type;
42 struct tle_hashtable {
48 struct tle_freetable {
50 unsigned int num_zones;
51 unsigned int zone_bits;
52 unsigned int num_buckets;
56 union tdb_layout_elem {
60 struct tle_freetable freetable;
61 struct tle_hashtable hashtable;
65 unsigned int num_elems;
66 union tdb_layout_elem *elem;
67 unsigned int ftable, htable;
69 #endif /* TDB2_TEST_LAYOUT_H */