]> arthur.barton.de Git - netatalk.git/blob - libatalk/cnid/db3/cnid_db3.h
59840a37cfc0dfbade22dd3668a8731d660a5416
[netatalk.git] / libatalk / cnid / db3 / cnid_db3.h
1 /* 
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.
4  */
5
6 #ifndef _ATALK_CNID_DB3__H
7 #define _ATALK_CNID_DB3__H 1
8
9 #include <sys/cdefs.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13
14 #include <netatalk/endian.h>
15 #include <atalk/cnid.h>
16
17 static int db3_txn_abort(DB_TXN *db_txn)
18 {
19     int ret;
20 #if DB_VERSION_MAJOR >= 4
21     ret = db_txn->abort(db_txn);
22 #else
23     ret = txn_abort(db_txn);
24 #endif
25     return ret;
26 }
27
28 /* -------------------- */
29 static int db3_txn_begin(DB_ENV *db_env, DB_TXN *parent, DB_TXN **db_txn, u_int32_t flags)
30 {
31     int ret;
32 #if DB_VERSION_MAJOR >= 4
33     ret = db_env->txn_begin(db_env, parent, db_txn, flags);
34 #else
35     ret = txn_begin(db_env, paren, db_txn, flags);
36 #endif
37     return ret;
38 }
39             
40 /* -------------------- */
41 static int db3_txn_commit(DB_TXN *db_txn, u_int32_t flags)
42 {
43     int ret;
44 #if DB_VERSION_MAJOR >= 4
45     ret = db_txn->commit(db_txn, flags);
46 #else
47     ret = txn_commit(db_txn, flags);
48 #endif
49     return ret;
50 }
51
52 /* -----------------------
53    cnid_open.c 
54 */
55 extern struct _cnid_module cnid_db3_module;
56 extern struct _cnid_db *cnid_db3_open (const char *, mode_t, u_int32_t flags);
57
58 /* cnid_close.c */
59 extern void cnid_db3_close (struct _cnid_db *);
60
61 /* cnid_add.c */
62 extern cnid_t cnid_db3_add (struct _cnid_db *, const struct stat *, const cnid_t,
63                             char *, const size_t, cnid_t);
64
65 /* cnid_get.c */
66 extern cnid_t cnid_db3_get (struct _cnid_db *, const cnid_t, char *, const size_t); 
67 extern char *cnid_db3_resolve (struct _cnid_db *, cnid_t *, void *, size_t ); 
68 extern cnid_t cnid_db3_lookup (struct _cnid_db *, const struct stat *, const cnid_t,
69                                char *, const size_t);
70
71 /* cnid_update.c */
72 extern int cnid_db3_update (struct _cnid_db *, const cnid_t, const struct stat *,
73                             const cnid_t, char *, size_t);
74
75 /* cnid_delete.c */
76 extern int cnid_db3_delete (struct _cnid_db *, const cnid_t);
77
78 /* cnid_nextid.c */
79 extern cnid_t cnid_db3_nextid (struct _cnid_db *);
80
81 extern int cnid_db3_lock   (void *);
82 extern int cnid_db3_unlock (void *);
83
84 #endif /* include/atalk/cnid_db3.h */
85