From ca8c77a5ef91230ebdcac4177a88274351500c4b Mon Sep 17 00:00:00 2001 From: didg Date: Thu, 19 Nov 2009 01:17:31 +0000 Subject: [PATCH] merge common cnid declarations in cnid_private.h --- include/atalk/Makefile.am | 2 +- include/atalk/cnid_dbd_private.h | 53 +------------------------ include/atalk/cnid_private.h | 59 ++++++++++++++++++++++++++++ libatalk/cnid/cdb/cnid_cdb_private.h | 43 ++------------------ 4 files changed, 65 insertions(+), 92 deletions(-) create mode 100644 include/atalk/cnid_private.h diff --git a/include/atalk/Makefile.am b/include/atalk/Makefile.am index f9bca72e..69000564 100644 --- a/include/atalk/Makefile.am +++ b/include/atalk/Makefile.am @@ -8,4 +8,4 @@ atalkinclude_HEADERS = \ server_ipc.h tdb.h uam.h unicode.h util.h uuid.h volinfo.h \ zip.h ea.h acl.h unix.h directory.h hash.h volume.h -noinst_HEADERS = cnid_dbd_private.h +noinst_HEADERS = cnid_dbd_private.h cnid_private.h diff --git a/include/atalk/cnid_dbd_private.h b/include/atalk/cnid_dbd_private.h index 4128c764..10a37784 100644 --- a/include/atalk/cnid_dbd_private.h +++ b/include/atalk/cnid_dbd_private.h @@ -10,6 +10,8 @@ #include #include +#include + #define CNID_DBD_OP_OPEN 0x01 #define CNID_DBD_OP_CLOSE 0x02 #define CNID_DBD_OP_ADD 0x03 @@ -29,57 +31,6 @@ #define CNID_DBD_RES_ERR_MAX 0x03 #define CNID_DBD_RES_ERR_DUPLCNID 0x04 -#define CNID_DB_MAGIC 0x434E4944U /* CNID */ -#define CNID_DATA_MAGIC 0x434E4945U /* CNIE */ - -#define CNID_OFS 0 -#define CNID_LEN 4 - -#define CNID_DEV_OFS CNID_LEN -#define CNID_DEV_LEN 8 - -#define CNID_INO_OFS (CNID_DEV_OFS + CNID_DEV_LEN) -#define CNID_INO_LEN 8 - -#define CNID_DEVINO_OFS CNID_LEN -#define CNID_DEVINO_LEN (CNID_DEV_LEN +CNID_INO_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_LEN CNID_LEN - -#define CNID_NAME_OFS (CNID_DID_OFS + CNID_DID_LEN) -#define CNID_HEADER_LEN (CNID_NAME_OFS) - -#define CNID_START 17 - -#define CNIDFLAG_ROOTINFO_RO (1 << 0) -#define CNIDFLAG_DB_RO (1 << 1) - -/* special key/data pair we use to store current cnid and database stamp in cnid2.db */ - -#define ROOTINFO_KEY "\0\0\0\0" -#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) - 4 bytes: last used cnid (type) - 4 unused bytes (did) - 9 bytes name "RootInfo" -*/ -#define ROOTINFO_DATA "\0\0\0\0" \ - "\0\0\0\0\0\0\0\0" \ - "\0\0\0\0\0\0\0\0" \ - "\0\0\0\0" \ - "\0\0\0\0" \ - "RootInfo" -#define ROOTINFO_DATALEN (3*4 + 2*8 + 9) - struct cnid_dbd_rqst { int op; cnid_t cnid; diff --git a/include/atalk/cnid_private.h b/include/atalk/cnid_private.h new file mode 100644 index 00000000..b6025963 --- /dev/null +++ b/include/atalk/cnid_private.h @@ -0,0 +1,59 @@ +/* + * Common defines for cnid + */ + +#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_DEV_OFS CNID_LEN +#define CNID_DEV_LEN 8 + +#define CNID_INO_OFS (CNID_DEV_OFS + CNID_DEV_LEN) +#define CNID_INO_LEN 8 + +#define CNID_DEVINO_OFS CNID_LEN +#define CNID_DEVINO_LEN (CNID_DEV_LEN +CNID_INO_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_LEN CNID_LEN + +#define CNID_NAME_OFS (CNID_DID_OFS + CNID_DID_LEN) +#define CNID_HEADER_LEN (CNID_NAME_OFS) + +#define CNID_START 17 + +#define CNIDFLAG_ROOTINFO_RO (1 << 0) +#define CNIDFLAG_DB_RO (1 << 1) + +/* special key/data pair we use to store current cnid and database stamp in cnid2.db */ + +#define ROOTINFO_KEY "\0\0\0\0" +#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) + 4 bytes: is a file/directory (type) + 4 unused bytes (did) + 9 bytes name "RootInfo" +*/ +#define ROOTINFO_DATA "\0\0\0\0" \ + "\0\0\0\0\0\0\0\0" \ + "\0\0\0\0\0\0\0\0" \ + "\0\0\0\0" \ + "\0\0\0\0" \ + "RootInfo" +#define ROOTINFO_DATALEN (3*4 + 2*8 + 9) + +#endif diff --git a/libatalk/cnid/cdb/cnid_cdb_private.h b/libatalk/cnid/cdb/cnid_cdb_private.h index 4a655580..7d9142a7 100644 --- a/libatalk/cnid/cdb/cnid_cdb_private.h +++ b/libatalk/cnid/cdb/cnid_cdb_private.h @@ -1,5 +1,5 @@ /* - * $Id: cnid_cdb_private.h,v 1.5 2009-10-13 22:55:37 didg Exp $ + * $Id: cnid_cdb_private.h,v 1.6 2009-11-19 01:17:31 didg Exp $ */ #ifndef LIBATALK_CDB_PRIVATE_H @@ -33,13 +33,11 @@ #include #include +#include #include #include #include "cnid_cdb.h" -#define CNID_DB_MAGIC 0x434E4944U /* CNID */ -#define CNID_DATA_MAGIC 0x434E4945U /* CNIE */ - /* record structure cnid 4 dev 8 @@ -65,42 +63,6 @@ typedef struct cnid_record { /* helper for debug don't use */ char name[50]; } cnid_record; -#define CNID_OFS 0 -#define CNID_LEN 4 - -#define CNID_DEV_OFS CNID_LEN -#define CNID_DEV_LEN 8 - -#define CNID_INO_OFS (CNID_DEV_OFS + CNID_DEV_LEN) -#define CNID_INO_LEN 8 - -#define CNID_DEVINO_OFS CNID_LEN -#define CNID_DEVINO_LEN (CNID_DEV_LEN +CNID_INO_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_LEN CNID_LEN - -#define CNID_NAME_OFS (CNID_DID_OFS + CNID_DID_LEN) -#define CNID_HEADER_LEN (CNID_NAME_OFS) - -#define CNID_START 17 - -#define CNIDFLAG_ROOTINFO_RO (1 << 0) -#define CNIDFLAG_DB_RO (1 << 1) - -/* the key is cnid 0 - * we use 0/RootInfo. */ -#define ROOTINFO_KEY "\0\0\0\0" -#define ROOTINFO_KEYLEN 4 - -/* cnid - dev - inode - type - did - name */ -#define ROOTINFO_DATA "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0RootInfo" -#define ROOTINFO_DATALEN (3*4 +2*8 +9) - - typedef struct CNID_private { u_int32_t magic; DB *db_cnid; @@ -111,6 +73,7 @@ typedef struct CNID_private { char lock_file[MAXPATHLEN + 1]; } CNID_private; +/* XXX stuff below is outdate */ /* on-disk data format (in network byte order where appropriate) -- * db_cnid: (key: cnid) * name size (in bytes) -- 2.39.2