]> git.saurik.com Git - apple/file_cmds.git/blobdiff - mtree/mtree.h
file_cmds-321.100.10.0.1.tar.gz
[apple/file_cmds.git] / mtree / mtree.h
index 431fdd8aa84c990b7b1b0a4e3bdba931662bf421..16c927b5dd1b56f2745dc104a8eb5d4b0ff03b4f 100644 (file)
@@ -1,5 +1,3 @@
-/*     $NetBSD: mtree.h,v 1.7 1995/03/07 21:26:27 cgd Exp $    */
-
 /*-
  * Copyright (c) 1990, 1993
  *     The Regents of the University of California.  All rights reserved.
 /*-
  * Copyright (c) 1990, 1993
  *     The Regents of the University of California.  All rights reserved.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  * SUCH DAMAGE.
  *
  *     @(#)mtree.h     8.1 (Berkeley) 6/6/93
  * SUCH DAMAGE.
  *
  *     @(#)mtree.h     8.1 (Berkeley) 6/6/93
+ * $FreeBSD: src/usr.sbin/mtree/mtree.h,v 1.7 2005/03/29 11:44:17 tobez Exp $
  */
 
 #ifndef _MTREE_H_
 #define _MTREE_H_
 
  */
 
 #ifndef _MTREE_H_
 #define _MTREE_H_
 
+#include <sys/time.h>
 #include <string.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdlib.h>
-#include <sys/time.h>
 
 #define        KEYDEFAULT \
 
 #define        KEYDEFAULT \
-       (F_GID | F_MODE | F_NLINK | F_SIZE | F_SLINK | F_TIME | F_UID)
+       (F_GID | F_MODE | F_NLINK | F_SIZE | F_SLINK | F_TIME | F_UID | F_FLAGS)
 
 #define        MISMATCHEXIT    2
 
 
 #define        MISMATCHEXIT    2
 
@@ -53,30 +48,58 @@ typedef struct _node {
        off_t   st_size;                        /* size */
        struct timespec st_mtimespec;           /* last modification time */
        u_long  cksum;                          /* check sum */
        off_t   st_size;                        /* size */
        struct timespec st_mtimespec;           /* last modification time */
        u_long  cksum;                          /* check sum */
+       char    *md5digest;                     /* MD5 digest */
+       char    *sha1digest;                    /* SHA-1 digest */
+       char    *sha256digest;                  /* SHA-256 digest */
+       char    *rmd160digest;                  /* RIPEMD160 digest */
        char    *slink;                         /* symbolic link reference */
        uid_t   st_uid;                         /* uid */
        gid_t   st_gid;                         /* gid */
 #define        MBITS   (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
        mode_t  st_mode;                        /* mode */
        char    *slink;                         /* symbolic link reference */
        uid_t   st_uid;                         /* uid */
        gid_t   st_gid;                         /* gid */
 #define        MBITS   (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
        mode_t  st_mode;                        /* mode */
+       u_long  st_flags;                       /* flags */
        nlink_t st_nlink;                       /* link count */
        nlink_t st_nlink;                       /* link count */
+       struct timespec st_birthtimespec;       /* birth time (creation time) */
+       struct timespec st_atimespec;           /* access time */
+       struct timespec st_ctimespec;           /* metadata modification time */
+       struct timespec st_ptimespec;           /* time added to parent folder */
+       char    *xattrsdigest;                  /* digest of extended attributes */
+       u_quad_t xdstream_priv_id;              /* private id of the xattr data stream */
+       ino_t   st_ino;                         /* inode */
+       char    *acldigest;                     /* digest of access control list */
+       u_quad_t  sibling_id;                   /* sibling id */
 
 
-#define        F_CKSUM 0x0001                          /* check sum */
-#define        F_DONE  0x0002                          /* directory done */
-#define        F_GID   0x0004                          /* gid */
-#define        F_GNAME 0x0008                          /* group name */
-#define        F_IGN   0x0010                          /* ignore */
-#define        F_MAGIC 0x0020                          /* name has magic chars */
-#define        F_MODE  0x0040                          /* mode */
-#define        F_NLINK 0x0080                          /* number of links */
-#define        F_OPT   0x0100                          /* existence optional */
-#define        F_SIZE  0x0200                          /* size */
-#define        F_SLINK 0x0400                          /* link count */
-#define        F_TIME  0x0800                          /* modification time */
-#define        F_TYPE  0x1000                          /* file type */
-#define        F_UID   0x2000                          /* uid */
-#define        F_UNAME 0x4000                          /* user name */
-#define        F_VISIT 0x8000                          /* file visited */
-       u_short flags;                          /* items set */
+#define        F_CKSUM         0x00000001              /* check sum */
+#define        F_DONE          0x00000002              /* directory done */
+#define        F_GID           0x00000004              /* gid */
+#define        F_GNAME         0x00000008              /* group name */
+#define        F_IGN           0x00000010              /* ignore */
+#define        F_MAGIC         0x00000020              /* name has magic chars */
+#define        F_MODE          0x00000040              /* mode */
+#define        F_NLINK         0x00000080              /* number of links */
+#define        F_SIZE          0x00000100              /* size */
+#define        F_SLINK         0x00000200              /* The file the symbolic link is expected to reference */
+#define        F_TIME          0x00000400              /* modification time (mtime) */
+#define        F_TYPE          0x00000800              /* file type */
+#define        F_UID           0x00001000              /* uid */
+#define        F_UNAME         0x00002000              /* user name */
+#define        F_VISIT         0x00004000              /* file visited */
+#define F_MD5          0x00008000              /* MD5 digest */
+#define F_NOCHANGE     0x00010000              /* If owner/mode "wrong", do */
+                                               /* not change */
+#define        F_SHA1          0x00020000              /* SHA-1 digest */
+#define        F_RMD160        0x00040000              /* RIPEMD160 digest */
+#define        F_FLAGS         0x00080000              /* file flags */
+#define        F_SHA256        0x00100000              /* SHA-256 digest */
+#define F_BTIME                0x00200000              /* creation time */
+#define F_ATIME                0x00400000              /* access time */
+#define F_CTIME                0x00800000              /* metadata modification time (ctime) */
+#define F_PTIME                0x01000000              /* time added to parent folder */
+#define F_XATTRS       0x02000000              /* digest of extended attributes */
+#define F_INODE                0x04000000              /* inode */
+#define F_ACL          0x08000000              /* digest of access control list */
+#define F_SIBLINGID    0x10000000              /* sibling id */
+       u_int   flags;                          /* items set */
 
 #define        F_BLOCK 0x001                           /* block special */
 #define        F_CHAR  0x002                           /* char special */
 
 #define        F_BLOCK 0x001                           /* block special */
 #define        F_CHAR  0x002                           /* char special */