2 * Copyright (c) 2011 Frank Lahm
3 * All Rights Reserved. See COPYRIGHT.
8 #endif /* HAVE_CONFIG_H */
16 #include <atalk/logger.h>
17 #include <atalk/errchk.h>
18 #include <atalk/locking.h>
19 #include <atalk/cnid.h>
20 #include <atalk/paths.h>
22 /***************************************************************************
23 * structures and defines
24 ***************************************************************************/
26 #define LOCKTABLE_PATH "/tmp/netatalk-afp-locks.tdb"
29 * Struct for building the the main database of file locks.
30 * vid + cnid build the primary key for database access.
32 typedef struct afp_lock {
39 /* pid holding the lock, also secondary key */
42 /* Refcounting access and deny modes */
49 #define PACKED_AFP_LOCK_SIZE \
50 sizeof(((afp_lock_t *)0)->l_vid) + \
51 sizeof(((afp_lock_t *)0)->l_cnid) + \
52 sizeof(((afp_lock_t *)0)->l_dev) + \
53 sizeof(((afp_lock_t *)0)->l_ino) + \
54 sizeof(((afp_lock_t *)0)->l_pid) + \
55 sizeof(((afp_lock_t *)0)->l_amode_r) + \
56 sizeof(((afp_lock_t *)0)->l_amode_w) + \
57 sizeof(((afp_lock_t *)0)->l_dmode_r) + \
58 sizeof(((afp_lock_t *)0)->l_dmode_r)
60 /***************************************************************************
62 ***************************************************************************/
64 static struct smbdb_ctx *tdb;
66 /***************************************************************************
68 ***************************************************************************/
70 /***************************************************************************
72 ***************************************************************************/
75 * Open locktable from path
77 int locktable_init(const char *path)
81 // EC_NULL_LOG(tdb = smb_share_mode_db_open(path));