X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftdb2.h;h=c91ca7cad08613d53e1bfa3f317f6197eea3db30;hp=4be15e98861823f82e39d6bc5b7188c5ad0c5843;hb=49475d68deecd0b31597ed6094229171d2699b11;hpb=a446f1d4d161d66bbb19ba2551cf6429a4865964 diff --git a/ccan/tdb2/tdb2.h b/ccan/tdb2/tdb2.h index 4be15e98..c91ca7ca 100644 --- a/ccan/tdb2/tdb2.h +++ b/ccan/tdb2/tdb2.h @@ -607,7 +607,8 @@ enum tdb_attribute_type { TDB_ATTRIBUTE_SEED = 2, TDB_ATTRIBUTE_STATS = 3, TDB_ATTRIBUTE_OPENHOOK = 4, - TDB_ATTRIBUTE_FLOCK = 5 + TDB_ATTRIBUTE_FLOCK = 5, + TDB_ATTRIBUTE_TDB1_HASHSIZE = 128, }; /** @@ -631,8 +632,9 @@ enum TDB_ERROR tdb_get_attribute(struct tdb_context *tdb, * of the same type. It returns TDB_ERR_EINVAL if the attribute is * unknown or invalid. * - * Note that TDB_ATTRIBUTE_HASH, TDB_ATTRIBUTE_SEED and - * TDB_ATTRIBUTE_OPENHOOK cannot currently be set after tdb_open. + * Note that TDB_ATTRIBUTE_HASH, TDB_ATTRIBUTE_SEED, + * TDB_ATTRIBUTE_OPENHOOK and TDB_ATTRIBUTE_TDB1_HASHSIZE cannot + * currently be set after tdb_open. */ enum TDB_ERROR tdb_set_attribute(struct tdb_context *tdb, const union tdb_attribute *attr); @@ -838,6 +840,19 @@ struct tdb_attribute_flock { void *data; }; +/** + * struct tdb_attribute_tdb1_hashsize - tdb1 hashsize + * + * This attribute allows setting the TDB1 hashsize; it only makes sense with + * O_CREAT and TDB_VERSION1. + * + * Hashsize should generally be a prime, such as 10007. + */ +struct tdb_attribute_tdb1_hashsize { + struct tdb_attribute_base base; /* .attr = TDB_ATTRIBUTE_TDB1_HASHSIZE */ + unsigned int hsize; +}; + /** * union tdb_attribute - tdb attributes. * @@ -856,6 +871,7 @@ union tdb_attribute { struct tdb_attribute_stats stats; struct tdb_attribute_openhook openhook; struct tdb_attribute_flock flock; + struct tdb_attribute_tdb1_hashsize tdb1_hashsize; }; #ifdef __cplusplus