• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/netatalk-3.0.5/libatalk/cnid/tdb/
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_TDB__H
7#define _ATALK_CNID_TDB__H 1
8
9#include <sys/stat.h>
10#include <unistd.h>
11#include <string.h>
12#include <sys/param.h>
13#include <arpa/inet.h>
14
15#include <atalk/cnid.h>
16#include <atalk/cnid_private.h>
17#define STANDALONE 1
18
19#include <stdlib.h>
20#include <stdio.h>
21#include <fcntl.h>
22#include <unistd.h>
23#include <string.h>
24#include <fcntl.h>
25#include <errno.h>
26#include <sys/mman.h>
27#include <sys/stat.h>
28#include <signal.h>
29#include <atalk/tdb.h>
30
31#define TDB_ERROR_LINK  1
32#define TDB_ERROR_DEV   2
33#define TDB_ERROR_INODE 4
34
35struct _cnid_tdb_private {
36    dev_t  st_dev;
37    int    st_set;
38    int    error;
39    int    flags;
40    TDB_CONTEXT *tdb_cnid;
41    TDB_CONTEXT *tdb_didname;
42    TDB_CONTEXT *tdb_devino;
43
44};
45
46/* cnid_open.c */
47extern struct _cnid_module cnid_tdb_module;
48extern struct _cnid_db *cnid_tdb_open (struct cnid_open_args *args);
49
50/* cnid_close.c */
51extern void cnid_tdb_close (struct _cnid_db *);
52
53/* cnid_add.c */
54extern cnid_t cnid_tdb_add (struct _cnid_db *, const struct stat *, cnid_t,
55                            const char *, size_t, cnid_t);
56
57/* cnid_get.c */
58extern cnid_t cnid_tdb_get (struct _cnid_db *, cnid_t, const char *, size_t);
59extern char *cnid_tdb_resolve (struct _cnid_db *, cnid_t *, void *, size_t);
60extern cnid_t cnid_tdb_lookup (struct _cnid_db *, const struct stat *, cnid_t, const char *, size_t);
61
62/* cnid_update.c */
63extern int cnid_tdb_update (struct _cnid_db *, cnid_t, const struct stat *,
64                            cnid_t, const char *, size_t);
65
66/* cnid_delete.c */
67extern int cnid_tdb_delete (struct _cnid_db *, const cnid_t);
68
69/* cnid_nextid.c */
70extern cnid_t cnid_tdb_nextid (struct _cnid_db *);
71
72/* construct db_cnid data. NOTE: this is not re-entrant.  */
73extern unsigned char *make_tdb_data(uint32_t flags, const struct stat *st, const cnid_t did, const char *name, const size_t len);
74
75#endif /* include/atalk/cnid_tdb.h */
76