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