• 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/include/atalk/
1/*
2 *  Common defines for cnid
3 */
4
5#ifndef _ATALK_CNID_PRIVATE_H
6#define _ATALK_CNID_PRIVATE_H 1
7
8#define CNID_DB_MAGIC   0x434E4944U  /* CNID */
9#define CNID_DATA_MAGIC 0x434E4945U  /* CNIE */
10
11#define CNID_OFS                 0
12#define CNID_LEN                 4
13
14#define CNID_DEV_OFS             CNID_LEN
15#define CNID_DEV_LEN             8
16
17#define CNID_INO_OFS             (CNID_DEV_OFS + CNID_DEV_LEN)
18#define CNID_INO_LEN             8
19
20#define CNID_DEVINO_OFS          CNID_LEN
21#define CNID_DEVINO_LEN          (CNID_DEV_LEN + CNID_INO_LEN)
22
23#define CNID_TYPE_OFS            (CNID_DEVINO_OFS + CNID_DEVINO_LEN)
24#define CNID_TYPE_LEN            4
25
26#define CNID_DID_OFS             (CNID_TYPE_OFS + CNID_TYPE_LEN)
27#define CNID_DID_LEN             CNID_LEN
28
29#define CNID_NAME_OFS            (CNID_DID_OFS + CNID_DID_LEN)
30#define CNID_HEADER_LEN          (CNID_NAME_OFS)
31
32#define CNIDFLAG_ROOTINFO_RO     (1 << 0)
33#define CNIDFLAG_DB_RO           (1 << 1)
34
35/* special key/data pair we use to store current cnid and database stamp in cnid2.db */
36
37#define ROOTINFO_KEY    "\0\0\0\0"
38#define ROOTINFO_KEYLEN 4
39
40/*
41   Rootinfo data, fields as they are used by normal entries for CNIDs (for reference):
42   4 bytes: CNID
43   8 bytes: dev
44   8 bytes: inode
45   4 bytes: is a file/directory (type)
46   4 bytes: DID
47   x bytes: name
48
49   Contents in Rootinfo entry:
50   4 bytes: 0
51   8 bytes: db stamp: struct stat.st_ctime of database file
52   8 bytes: unused
53   4 bytes: last used CNID
54   4 bytes: version as htonl(uint32_t)
55   9 bytes: name "RootInfo"
56*/
57#define ROOTINFO_DATA    "\0\0\0\0" \
58                         "\0\0\0\0\0\0\0\0" \
59                         "\0\0\0\0\0\0\0\0" \
60                         "\0\0\0\0" \
61                         "\0\0\0\0" \
62                         "RootInfo"
63#define ROOTINFO_DATALEN (3*4 + 2*8 + 9)
64
65/*
66 * CNID version history:
67 * 0: up to Netatalk 2.1.x
68 * 1: starting with 2.2, additional name index, used in cnid_find
69 */
70#define CNID_VERSION_0               0
71#define CNID_VERSION_1               1
72#define CNID_VERSION_UNINTIALIZED_DB UINT32_MAX
73
74/* Current CNID version */
75#define CNID_VERSION CNID_VERSION_1
76
77#endif
78