2 * interface for database access to cnids. i do it this way to abstract
3 * things a bit in case we want to change the underlying implementation.
6 #ifndef _ATALK_CNID_DB3__H
7 #define _ATALK_CNID_DB3__H 1
14 #include <netatalk/endian.h>
15 #include <atalk/cnid.h>
17 static __inline__ int db3_txn_abort(DB_TXN *db_txn)
20 #if DB_VERSION_MAJOR >= 4
21 ret = db_txn->abort(db_txn);
23 ret = txn_abort(db_txn);
28 /* -------------------- */
29 static __inline__ int db3_txn_begin(DB_ENV *db_env, DB_TXN *parent, DB_TXN **db_txn, u_int32_t flags)
32 #if DB_VERSION_MAJOR >= 4
33 ret = db_env->txn_begin(db_env, parent, db_txn, flags);
35 ret = txn_begin(db_env, paren, db_txn, flags);
40 /* -------------------- */
41 static __inline__ int db3_txn_commit(DB_TXN *db_txn, u_int32_t flags)
44 #if DB_VERSION_MAJOR >= 4
45 ret = db_txn->commit(db_txn, flags);
47 ret = txn_commit(db_txn, flags);
52 /* -----------------------
55 extern struct _cnid_module cnid_db3_module;
56 extern struct _cnid_db *cnid_db3_open __P((const char *, mode_t));
59 extern void cnid_db3_close __P((struct _cnid_db *));
62 extern cnid_t cnid_db3_add __P((struct _cnid_db *, const struct stat *, const cnid_t,
63 char *, const int, cnid_t));
66 extern cnid_t cnid_db3_get __P((struct _cnid_db *, const cnid_t, char *, const int));
67 extern char *cnid_db3_resolve __P((struct _cnid_db *, cnid_t *, void *, u_int32_t ));
68 extern cnid_t cnid_db3_lookup __P((struct _cnid_db *, const struct stat *, const cnid_t,
72 extern int cnid_db3_update __P((struct _cnid_db *, const cnid_t, const struct stat *,
73 const cnid_t, char *, int));
76 extern int cnid_db3_delete __P((struct _cnid_db *, const cnid_t));
79 extern cnid_t cnid_db3_nextid __P((struct _cnid_db *));
81 extern int cnid_db3_lock __P((void *));
82 extern int cnid_db3_unlock __P((void *));
84 #endif /* include/atalk/cnid_db3.h */