]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/cnid/cdb/cnid_cdb_private.h
Merge 2-2
[netatalk.git] / libatalk / cnid / cdb / cnid_cdb_private.h
index 7453173ea47c1842880805ac53c8dce1062379f3..ff28be84c9d399e309837bb0257fcf792d67a22c 100644 (file)
@@ -1,7 +1,3 @@
-/*
- * $Id: cnid_cdb_private.h,v 1.3 2005-05-03 14:55:13 didg Exp $
- */
-
 #ifndef LIBATALK_CDB_PRIVATE_H
 #define LIBATALK_CDB_PRIVATE_H 1
 
@@ -9,37 +5,26 @@
 #include "config.h"
 #endif /* HAVE_CONFIG_H */
 
-#include <netatalk/endian.h>
-
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif /* HAVE_UNISTD_H */
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
-#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
-#endif /* HAVE_FCNTL_H */
 #include <sys/param.h>
 #include <sys/stat.h>
-#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
-#endif /* HAVE_SYS_TIME_H */
-#ifdef HAVE_TIME_H
 #include <time.h>
-#endif
-#include <sys/cdefs.h>
+#include <arpa/inet.h>
+
 #include <db.h>
 
 #include <atalk/logger.h>
 #include <atalk/adouble.h>
+#include <atalk/cnid_private.h>
 #include <atalk/cnid.h>
 #include <atalk/util.h>
 #include "cnid_cdb.h"
 
-#define CNID_DB_MAGIC   0x434E4944U  /* CNID */
-#define CNID_DATA_MAGIC 0x434E4945U  /* CNIE */
-
 /* record structure 
    cnid                4
    dev                 8
@@ -65,42 +50,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 +60,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)
@@ -168,64 +118,8 @@ typedef struct CNID_private {
  * name namelen = strlen(name) + 1 
  */
 
-#ifndef __inline__
-#define __inline__
-#endif /* __inline__ */
-
 /* construct db_cnid data. NOTE: this is not re-entrant.  */
-#ifndef ATACC
-static void make_devino_data(unsigned char *buf, dev_t dev, ino_t ino)
-{
-    buf[CNID_DEV_LEN - 1] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 2] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 3] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 4] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 5] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 6] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 7] = dev; dev >>= 8;
-    buf[CNID_DEV_LEN - 8] = dev;
-
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 1] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 2] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 3] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 4] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 5] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 6] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 7] = ino; ino >>= 8;
-    buf[CNID_DEV_LEN + CNID_INO_LEN - 8] = ino;    
-}
-
-static __inline__ unsigned char *make_cnid_data(const struct stat *st,
-                                       const cnid_t did,
-                                       const char *name, const size_t len)
-{
-    static unsigned char start[CNID_HEADER_LEN + MAXPATHLEN + 1];
-    unsigned char *buf = start  +CNID_LEN;
-    u_int32_t i;
-
-    if (len > MAXPATHLEN)
-        return NULL;
-
-    make_devino_data(buf, st->st_dev, st->st_ino);
-    buf += CNID_DEVINO_LEN;
-
-    i = S_ISDIR(st->st_mode)?1:0;
-    i = htonl(i);
-    memcpy(buf, &i, sizeof(i));
-    buf += sizeof(i);
-    
-    /* did is already in network byte order */
-    memcpy(buf, &did, sizeof(did));
-    buf += sizeof(did);
-
-    memcpy(buf, name, len);
-    *(buf + len) = '\0';
-
-    return start;
-}
-#else
-extern unsigned char *make_cnid_data __P((const struct stat *,const cnid_t ,
-                                       const char *, const size_t ));
-#endif
+extern unsigned char *make_cnid_data (u_int32_t flags, const struct stat *,const cnid_t ,
+                                       const char *, const size_t );
 
 #endif /* atalk/cnid/cnid_private.h */