]> arthur.barton.de Git - netatalk.git/blob - etc/cnid_dbd/cmd_dbd.h
working on db locking
[netatalk.git] / etc / cnid_dbd / cmd_dbd.h
1 #ifndef CMD_DBD_H
2 #define CMD_DBD_H
3
4 #include <signal.h>
5 #include <limits.h>
6
7 #include <atalk/volinfo.h>
8 #include "dbif.h"
9
10 enum logtype {LOGSTD, LOGDEBUG};
11 typedef unsigned int dbd_flags_t;
12 typedef enum {LOCK_FREE, LOCK_UNLOCK, LOCK_EXCL, LOCK_SHRD} lockcmd_t;
13
14 #define DBD_FLAGS_SCAN     (1 << 0)
15 #define DBD_FLAGS_FORCE    (1 << 1)
16 #define DBD_FLAGS_EXCL     (1 << 2)
17 #define DBD_FLAGS_CLEANUP  (1 << 3) /* Dont create AD stuff, but cleanup orphaned */
18 #define DBD_FLAGS_STATS    (1 << 4)
19
20 #define ADv2_DIRNAME ".AppleDouble"
21
22 #define DIR_DOT_OR_DOTDOT(a) \
23         ((strcmp(a, ".") == 0) || (strcmp(a, "..") == 0))
24
25 #define STRCMP(a,b,c) \
26         (strcmp(a,c) b 0)
27
28 extern int nocniddb; /* Dont open CNID database, only scan filesystem */
29 extern int db_locked; /* have we got the fcntl lock on lockfd ? */
30 extern volatile sig_atomic_t alarmed;
31 extern struct volinfo *volinfo;
32 extern char cwdbuf[MAXPATHLEN+1];
33
34 extern void dbd_log(enum logtype lt, char *fmt, ...);
35 extern int cmd_dbd_scanvol(DBD *dbd, struct volinfo *volinfo, dbd_flags_t flags);
36 extern int get_lock(lockcmd_t cmd, const char *dbpath);
37
38 /*
39   Functions for querying the database which couldn't be reused from the existing
40   funcs pool of dbd_* for one reason or another
41 */
42 extern int cmd_dbd_add(DBD *dbd, struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *rply);
43 #endif /* CMD_DBD_H */