]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/cnid_private.h
Spotlight: use async Tracker SPARQL API
[netatalk.git] / include / atalk / cnid_private.h
index 6525ce4898c63508bb6c8cb97979cfea61800fdd..c030ff99f404b2d99d09ef8d11b0a6d887c6e358 100644 (file)
@@ -5,9 +5,6 @@
 #ifndef _ATALK_CNID_PRIVATE_H
 #define _ATALK_CNID_PRIVATE_H 1
 
-#define CNID_DB_MAGIC   0x434E4944U  /* CNID */
-#define CNID_DATA_MAGIC 0x434E4945U  /* CNIE */
-
 #define CNID_OFS                 0
 #define CNID_LEN                 4
  
 #define CNID_INO_LEN             8
  
 #define CNID_DEVINO_OFS          CNID_LEN
-#define CNID_DEVINO_LEN          (CNID_DEV_LEN +CNID_INO_LEN)
+#define CNID_DEVINO_LEN          (CNID_DEV_LEN + CNID_INO_LEN)
  
-#define CNID_TYPE_OFS            (CNID_DEVINO_OFS +CNID_DEVINO_LEN)
+#define CNID_TYPE_OFS            (CNID_DEVINO_OFS + CNID_DEVINO_LEN)
 #define CNID_TYPE_LEN            4
  
-#define CNID_DID_OFS             (CNID_TYPE_OFS +CNID_TYPE_LEN)
+#define CNID_DID_OFS             (CNID_TYPE_OFS + CNID_TYPE_LEN)
 #define CNID_DID_LEN             CNID_LEN
  
 #define CNID_NAME_OFS            (CNID_DID_OFS + CNID_DID_LEN)
 #define ROOTINFO_KEYLEN 4
 
 /* 
-   Rootinfo data:
-   4 unused bytes (cnid) 
-   8 bytes, in first 4 bytes db stamp: struct stat.st_ctime of database file (dev)
-   8 unused bytes (inode)
+   Rootinfo data, fields as they are used by normal entries for CNIDs (for reference):
+   4 bytes: CNID 
+   8 bytes: dev
+   8 bytes: inode
    4 bytes: is a file/directory (type)
-   4 unused bytes (did)
-   9 bytes name "RootInfo"
+   4 bytes: DID
+   x bytes: name
+
+   Contents in Rootinfo entry:
+   4 bytes: 0
+   8 bytes: db stamp: struct stat.st_ctime of database file
+   8 bytes: unused
+   4 bytes: last used CNID
+   4 bytes: version as htonl(uint32_t)
+   9 bytes: name "RootInfo"
 */
 #define ROOTINFO_DATA    "\0\0\0\0" \
                          "\0\0\0\0\0\0\0\0" \
                          "RootInfo"
 #define ROOTINFO_DATALEN (3*4 + 2*8 + 9)
 
+/* 
+ * CNID version history:
+ * 0: up to Netatalk 2.1.x
+ * 1: starting with 2.2, additional name index, used in cnid_find
+ */
+#define CNID_VERSION_0               0
+#define CNID_VERSION_1               1
+#define CNID_VERSION_UNINTIALIZED_DB UINT32_MAX
+
+/* Current CNID version */
+#define CNID_VERSION CNID_VERSION_1
+
 #endif