]> 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 3398b05f7531604c875f8317d4c66ea22daec486..16c927b5dd1b56f2745dc104a8eb5d4b0ff03b4f 100644 (file)
  * 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.
  *
  * SUCH DAMAGE.
  *
  *     @(#)mtree.h     8.1 (Berkeley) 6/6/93
- * $FreeBSD: src/usr.sbin/mtree/mtree.h,v 1.5 1999/12/09 20:38:35 joe Exp $
+ * $FreeBSD: src/usr.sbin/mtree/mtree.h,v 1.7 2005/03/29 11:44:17 tobez Exp $
  */
 
+#ifndef _MTREE_H_
+#define _MTREE_H_
+
+#include <sys/time.h>
 #include <string.h>
 #include <stdlib.h>
 
@@ -50,6 +50,7 @@ typedef struct _node {
        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 */
@@ -58,28 +59,46 @@ typedef struct _node {
        mode_t  st_mode;                        /* mode */
        u_long  st_flags;                       /* flags */
        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_SIZE  0x0100                          /* size */
-#define        F_SLINK 0x0200                          /* link count */
-#define        F_TIME  0x0400                          /* modification time */
-#define        F_TYPE  0x0800                          /* file type */
-#define        F_UID   0x1000                          /* uid */
-#define        F_UNAME 0x2000                          /* user name */
-#define        F_VISIT 0x4000                          /* file visited */
-#define F_MD5  0x8000                          /* MD5 digest */
-#define F_NOCHANGE 0x10000                     /* If owner/mode "wrong", do */
+#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  0x20000                         /* SHA-1 digest */
-#define        F_RMD160 0x40000                        /* RIPEMD160 digest */
-#define        F_FLAGS 0x80000                         /* file flags */
+#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 */
@@ -97,3 +116,5 @@ typedef struct _node {
 #define        RP(p)   \
        ((p)->fts_path[0] == '.' && (p)->fts_path[1] == '/' ? \
            (p)->fts_path + 2 : (p)->fts_path)
+
+#endif /* _MTREE_H_ */