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