X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Fcnid%2Fcdb%2Fcnid_cdb_private.h;h=ff28be84c9d399e309837bb0257fcf792d67a22c;hb=321a0107c48da7b3fbf895a2b32244174c1ff39c;hp=7453173ea47c1842880805ac53c8dce1062379f3;hpb=d8736f77764e18812d1c05769bd211b56539d1c1;p=netatalk.git diff --git a/libatalk/cnid/cdb/cnid_cdb_private.h b/libatalk/cnid/cdb/cnid_cdb_private.h index 7453173e..ff28be84 100644 --- a/libatalk/cnid/cdb/cnid_cdb_private.h +++ b/libatalk/cnid/cdb/cnid_cdb_private.h @@ -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 - -#ifdef HAVE_UNISTD_H #include -#endif /* HAVE_UNISTD_H */ #include #include #include -#ifdef HAVE_FCNTL_H #include -#endif /* HAVE_FCNTL_H */ #include #include -#ifdef HAVE_SYS_TIME_H #include -#endif /* HAVE_SYS_TIME_H */ -#ifdef HAVE_TIME_H #include -#endif -#include +#include + #include #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 +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 */