return TDB_SUCCESS;
}
-enum TDB_ERROR tdb_check_(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_check_(struct tdb_context *tdb,
enum TDB_ERROR (*check)(TDB_DATA, TDB_DATA, void *),
void *data)
{
/* lock/unlock one hash chain. This is meant to be used to reduce
contention - it cannot guarantee how many records will be locked */
-enum TDB_ERROR tdb_chainlock(struct tdb_context *tdb, TDB_DATA key)
+_PUBLIC_ enum TDB_ERROR tdb_chainlock(struct tdb_context *tdb, TDB_DATA key)
{
if (tdb->flags & TDB_VERSION1) {
if (tdb1_chainlock(tdb, key) == -1)
"tdb_chainlock");
}
-void tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key)
+_PUBLIC_ void tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key)
{
uint64_t h = tdb_hash(tdb, key.dptr, key.dsize);
tdb_off_t lockstart, locksize;
tdb_unlock_hashes(tdb, lockstart, locksize, F_WRLCK);
}
-enum TDB_ERROR tdb_chainlock_read(struct tdb_context *tdb, TDB_DATA key)
+_PUBLIC_ enum TDB_ERROR tdb_chainlock_read(struct tdb_context *tdb, TDB_DATA key)
{
if (tdb->flags & TDB_VERSION1) {
if (tdb1_chainlock_read(tdb, key) == -1)
"tdb_chainlock_read");
}
-void tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key)
+_PUBLIC_ void tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key)
{
uint64_t h = tdb_hash(tdb, key.dptr, key.dsize);
tdb_off_t lockstart, locksize;
tdb_nest_unlock(tdb, free_lock_off(b_off), F_WRLCK);
}
-enum TDB_ERROR tdb_lockall(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_lockall(struct tdb_context *tdb)
{
return tdb_allrecord_lock(tdb, F_WRLCK, TDB_LOCK_WAIT, false);
}
-void tdb_unlockall(struct tdb_context *tdb)
+_PUBLIC_ void tdb_unlockall(struct tdb_context *tdb)
{
tdb_allrecord_unlock(tdb, F_WRLCK);
}
-enum TDB_ERROR tdb_lockall_read(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_lockall_read(struct tdb_context *tdb)
{
return tdb_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_WAIT, false);
}
-void tdb_unlockall_read(struct tdb_context *tdb)
+_PUBLIC_ void tdb_unlockall_read(struct tdb_context *tdb)
{
tdb_allrecord_unlock(tdb, F_RDLCK);
}
return TDB_SUCCESS;
}
-enum TDB_ERROR tdb_set_attribute(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_set_attribute(struct tdb_context *tdb,
const union tdb_attribute *attr)
{
switch (attr->base.attr) {
return TDB_SUCCESS;
}
-enum TDB_ERROR tdb_get_attribute(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_get_attribute(struct tdb_context *tdb,
union tdb_attribute *attr)
{
switch (attr->base.attr) {
return TDB_SUCCESS;
}
-void tdb_unset_attribute(struct tdb_context *tdb,
+_PUBLIC_ void tdb_unset_attribute(struct tdb_context *tdb,
enum tdb_attribute_type type)
{
switch (type) {
return ecode;
}
-struct tdb_context *tdb_open(const char *name, int tdb_flags,
+_PUBLIC_ struct tdb_context *tdb_open(const char *name, int tdb_flags,
int open_flags, mode_t mode,
union tdb_attribute *attr)
{
return NULL;
}
-int tdb_close(struct tdb_context *tdb)
+_PUBLIC_ int tdb_close(struct tdb_context *tdb)
{
int ret = 0;
struct tdb_context **i;
return ret;
}
-void tdb_foreach_(int (*fn)(struct tdb_context *, void *), void *p)
+_PUBLIC_ void tdb_foreach_(int (*fn)(struct tdb_context *, void *), void *p)
{
struct tdb_context *i;
}
}
-enum TDB_ERROR tdb_summary(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_summary(struct tdb_context *tdb,
enum tdb_summary_flags flags,
char **summary)
{
return ecode;
}
-enum TDB_ERROR tdb_store(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_store(struct tdb_context *tdb,
struct tdb_data key, struct tdb_data dbuf, int flag)
{
struct hash_info h;
return tdb->last_error = ecode;
}
-enum TDB_ERROR tdb_append(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_append(struct tdb_context *tdb,
struct tdb_data key, struct tdb_data dbuf)
{
struct hash_info h;
return tdb->last_error = ecode;
}
-enum TDB_ERROR tdb_fetch(struct tdb_context *tdb, struct tdb_data key,
+_PUBLIC_ enum TDB_ERROR tdb_fetch(struct tdb_context *tdb, struct tdb_data key,
struct tdb_data *data)
{
tdb_off_t off;
return tdb->last_error = ecode;
}
-bool tdb_exists(struct tdb_context *tdb, TDB_DATA key)
+_PUBLIC_ bool tdb_exists(struct tdb_context *tdb, TDB_DATA key)
{
tdb_off_t off;
struct tdb_used_record rec;
return off ? true : false;
}
-enum TDB_ERROR tdb_delete(struct tdb_context *tdb, struct tdb_data key)
+_PUBLIC_ enum TDB_ERROR tdb_delete(struct tdb_context *tdb, struct tdb_data key)
{
tdb_off_t off;
struct tdb_used_record rec;
return tdb->last_error = ecode;
}
-unsigned int tdb_get_flags(struct tdb_context *tdb)
+_PUBLIC_ unsigned int tdb_get_flags(struct tdb_context *tdb)
{
return tdb->flags;
}
return true;
}
-void tdb_add_flag(struct tdb_context *tdb, unsigned flag)
+_PUBLIC_ void tdb_add_flag(struct tdb_context *tdb, unsigned flag)
{
if (tdb->flags & TDB_INTERNAL) {
tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL,
}
}
-void tdb_remove_flag(struct tdb_context *tdb, unsigned flag)
+_PUBLIC_ void tdb_remove_flag(struct tdb_context *tdb, unsigned flag)
{
if (tdb->flags & TDB_INTERNAL) {
tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL,
}
}
-const char *tdb_errorstr(enum TDB_ERROR ecode)
+_PUBLIC_ const char *tdb_errorstr(enum TDB_ERROR ecode)
{
/* Gcc warns if you miss a case in the switch, so use that. */
switch (TDB_ERR_TO_OFF(ecode)) {
return "Invalid error code";
}
-enum TDB_ERROR tdb_error(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_error(struct tdb_context *tdb)
{
return tdb->last_error;
}
return ecode;
}
-enum TDB_ERROR tdb_parse_record_(struct tdb_context *tdb,
+_PUBLIC_ enum TDB_ERROR tdb_parse_record_(struct tdb_context *tdb,
TDB_DATA key,
enum TDB_ERROR (*parse)(TDB_DATA k,
TDB_DATA d,
return tdb->last_error = ecode;
}
-const char *tdb_name(const struct tdb_context *tdb)
+_PUBLIC_ const char *tdb_name(const struct tdb_context *tdb)
{
return tdb->name;
}
-int64_t tdb_get_seqnum(struct tdb_context *tdb)
+_PUBLIC_ int64_t tdb_get_seqnum(struct tdb_context *tdb)
{
tdb_off_t off;
}
-int tdb_fd(const struct tdb_context *tdb)
+_PUBLIC_ int tdb_fd(const struct tdb_context *tdb)
{
return tdb->file->fd;
}
return 0;
}
-enum TDB_ERROR tdb_repack(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_repack(struct tdb_context *tdb)
{
struct tdb_context *tmp_db;
struct traverse_state state;
return c;
}
-uint64_t tdb1_incompatible_hash(const void *key, size_t len, uint64_t seed,
+_PUBLIC_ uint64_t tdb1_incompatible_hash(const void *key, size_t len, uint64_t seed,
void *unused)
{
return hashlittle(key, len);
start a tdb transaction. No token is returned, as only a single
transaction is allowed to be pending per tdb_context
*/
-enum TDB_ERROR tdb_transaction_start(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_transaction_start(struct tdb_context *tdb)
{
enum TDB_ERROR ecode;
/*
cancel the current transaction
*/
-void tdb_transaction_cancel(struct tdb_context *tdb)
+_PUBLIC_ void tdb_transaction_cancel(struct tdb_context *tdb)
{
if (tdb->flags & TDB_VERSION1) {
tdb1_transaction_cancel(tdb);
/*
prepare to commit the current transaction
*/
-enum TDB_ERROR tdb_transaction_prepare_commit(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_transaction_prepare_commit(struct tdb_context *tdb)
{
if (tdb->flags & TDB_VERSION1) {
if (tdb1_transaction_prepare_commit(tdb) == -1)
/*
commit the current transaction
*/
-enum TDB_ERROR tdb_transaction_commit(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_transaction_commit(struct tdb_context *tdb)
{
const struct tdb_methods *methods;
int i;
#include "private.h"
#include <ccan/likely/likely.h>
-int64_t tdb_traverse_(struct tdb_context *tdb,
+_PUBLIC_ int64_t tdb_traverse_(struct tdb_context *tdb,
int (*fn)(struct tdb_context *,
TDB_DATA, TDB_DATA, void *),
void *p)
return count;
}
-enum TDB_ERROR tdb_firstkey(struct tdb_context *tdb, struct tdb_data *key)
+_PUBLIC_ enum TDB_ERROR tdb_firstkey(struct tdb_context *tdb, struct tdb_data *key)
{
struct traverse_info tinfo;
}
/* We lock twice, not very efficient. We could keep last key & tinfo cached. */
-enum TDB_ERROR tdb_nextkey(struct tdb_context *tdb, struct tdb_data *key)
+_PUBLIC_ enum TDB_ERROR tdb_nextkey(struct tdb_context *tdb, struct tdb_data *key)
{
struct traverse_info tinfo;
struct hash_info h;
return (*ecode != TDB_SUCCESS);
}
-enum TDB_ERROR tdb_wipe_all(struct tdb_context *tdb)
+_PUBLIC_ enum TDB_ERROR tdb_wipe_all(struct tdb_context *tdb)
{
enum TDB_ERROR ecode;
int64_t count;