#if defined(HAVE_WIN32)
-#define WIN32_REPARSE_POINT 1
-#define WIN32_MOUNT_POINT 2
+#define WIN32_REPARSE_POINT 1 /* Can be any number of "funny" directories except the next two */
+#define WIN32_MOUNT_POINT 2 /* Directory link to Volume */
+#define WIN32_JUNCTION_POINT 3 /* Directory link to a directory */
/* Reduce compiler warnings from Windows vss code */
#define uuid(x)
*/
#define DEFAULT_NETWORK_BUFFER_SIZE (64 * 1024)
-/**
- * Stream definitions. Once defined these must NEVER
- * change as they go on the storage media.
- * Note, the following streams are passed from the SD to the DIR
- * so that they may be put into the catalog (actually only the
- * stat packet part of the attr record is put in the catalog.
- *
- * STREAM_UNIX_ATTRIBUTES
- * STREAM_UNIX_ATTRIBUTES_EX
- * STREAM_MD5_DIGEST
- * STREAM_SHA1_DIGEST
- * STREAM_SHA256_DIGEST
- * STREAM_SHA512_DIGEST
- */
-#define STREAM_NONE 0 /* Reserved Non-Stream */
-#define STREAM_UNIX_ATTRIBUTES 1 /* Generic Unix attributes */
-#define STREAM_FILE_DATA 2 /* Standard uncompressed data */
-#define STREAM_MD5_SIGNATURE 3 /* deprecated */
-#define STREAM_MD5_DIGEST 3 /* MD5 digest for the file */
-#define STREAM_GZIP_DATA 4 /* GZip compressed file data */
-#define STREAM_UNIX_ATTRIBUTES_EX 5 /* Extended Unix attr for Win32 EX - Deprecated */
-#define STREAM_SPARSE_DATA 6 /* Sparse data stream */
-#define STREAM_SPARSE_GZIP_DATA 7 /* Sparse gzipped data stream */
-#define STREAM_PROGRAM_NAMES 8 /* program names for program data */
-#define STREAM_PROGRAM_DATA 9 /* Data needing program */
-#define STREAM_SHA1_SIGNATURE 10 /* deprecated */
-#define STREAM_SHA1_DIGEST 10 /* SHA1 digest for the file */
-#define STREAM_WIN32_DATA 11 /* Win32 BackupRead data */
-#define STREAM_WIN32_GZIP_DATA 12 /* Gzipped Win32 BackupRead data */
-#define STREAM_MACOS_FORK_DATA 13 /* Mac resource fork */
-#define STREAM_HFSPLUS_ATTRIBUTES 14 /* Mac OS extra attributes */
-#define STREAM_UNIX_ACCESS_ACL 15 /* Standard ACL attributes on UNIX - Deprecated */
-#define STREAM_UNIX_DEFAULT_ACL 16 /* Default ACL attributes on UNIX - Deprecated */
-#define STREAM_SHA256_DIGEST 17 /* SHA-256 digest for the file */
-#define STREAM_SHA512_DIGEST 18 /* SHA-512 digest for the file */
-#define STREAM_SIGNED_DIGEST 19 /* Signed File Digest, ASN.1, DER Encoded */
-#define STREAM_ENCRYPTED_FILE_DATA 20 /* Encrypted, uncompressed data */
-#define STREAM_ENCRYPTED_WIN32_DATA 21 /* Encrypted, uncompressed Win32 BackupRead data */
-#define STREAM_ENCRYPTED_SESSION_DATA 22 /* Encrypted Session Data, ASN.1, DER Encoded */
-#define STREAM_ENCRYPTED_FILE_GZIP_DATA 23 /* Encrypted, compressed data */
-#define STREAM_ENCRYPTED_WIN32_GZIP_DATA 24 /* Encrypted, compressed Win32 BackupRead data */
-#define STREAM_ENCRYPTED_MACOS_FORK_DATA 25 /* Encrypted, uncompressed Mac resource fork */
-#define STREAM_PLUGIN_NAME 26 /* Plugin "file" string */
-#define STREAM_PLUGIN_DATA 27 /* Plugin specific data */
-#define STREAM_RESTORE_OBJECT 28 /* Plugin restore object */
-
-/**
- * Additional Stream definitions. Once defined these must NEVER
- * change as they go on the storage media.
- *
- * The Stream numbers from 1000-1999 are reserved for ACL and extended attribute streams.
- * Each different platform has its own stream id(s), if a platform supports multiple stream types
- * it should supply different handlers for each type it supports and this should be called
- * from the stream dispatch function. Currently in this reserved space we allocate the
- * different acl streams from 1000 on and the different extended attributes streams from
- * 1999 down. So the two naming spaces grows towards each other.
- */
-#define STREAM_ACL_AIX_TEXT 1000 /* AIX specific string representation from acl_get */
-#define STREAM_ACL_DARWIN_ACCESS_ACL 1001 /* Darwin (OSX) specific acl_t string representation
- * from acl_to_text (POSIX acl)
- */
-#define STREAM_ACL_FREEBSD_DEFAULT_ACL 1002 /* FreeBSD specific acl_t string representation
- * from acl_to_text (POSIX acl) for default acls.
- */
-#define STREAM_ACL_FREEBSD_ACCESS_ACL 1003 /* FreeBSD specific acl_t string representation
- * from acl_to_text (POSIX acl) for access acls.
- */
-#define STREAM_ACL_HPUX_ACL_ENTRY 1004 /* HPUX specific acl_entry string representation
- * from acltostr (POSIX acl)
- */
-#define STREAM_ACL_IRIX_DEFAULT_ACL 1005 /* IRIX specific acl_t string representation
- * from acl_to_text (POSIX acl) for default acls.
- */
-#define STREAM_ACL_IRIX_ACCESS_ACL 1006 /* IRIX specific acl_t string representation
- * from acl_to_text (POSIX acl) for access acls.
- */
-#define STREAM_ACL_LINUX_DEFAULT_ACL 1007 /* Linux specific acl_t string representation
- * from acl_to_text (POSIX acl) for default acls.
- */
-#define STREAM_ACL_LINUX_ACCESS_ACL 1008 /* Linux specific acl_t string representation
- * from acl_to_text (POSIX acl) for access acls.
- */
-#define STREAM_ACL_TRU64_DEFAULT_ACL 1009 /* Tru64 specific acl_t string representation
- * from acl_to_text (POSIX acl) for default acls.
- */
-#define STREAM_ACL_TRU64_DEFAULT_DIR_ACL 1010 /* Tru64 specific acl_t string representation
- * from acl_to_text (POSIX acl) for default acls.
- */
-#define STREAM_ACL_TRU64_ACCESS_ACL 1011 /* Tru64 specific acl_t string representation
- * from acl_to_text (POSIX acl) for access acls.
- */
-#define STREAM_ACL_SOLARIS_ACLENT 1012 /* Solaris specific aclent_t string representation
- * from acltotext or acl_totext (POSIX acl)
- */
-#define STREAM_ACL_SOLARIS_ACE 1013 /* Solaris specific ace_t string representation from
- * from acl_totext (NFSv4 or ZFS acl)
- */
-#define STREAM_ACL_AFS_TEXT 1014 /* AFS specific string representation from pioctl */
-
-#define STREAM_ACL_AIX_AIXC 1015 /* AIX specific string representation from
- * aclx_printStr (POSIX acl)
- */
-#define STREAM_ACL_AIX_NFS4 1016 /* AIX specific string representation from
- * aclx_printStr (NFSv4 acl)
- */
-#define STREAM_XATTR_IRIX 1990 /* IRIX specific extended attributes */
-#define STREAM_XATTR_TRU64 1991 /* TRU64 specific extended attributes */
-#define STREAM_XATTR_AIX 1992 /* AIX specific extended attributes */
-#define STREAM_XATTR_OPENBSD 1993 /* OpenBSD specific extended attributes */
-#define STREAM_XATTR_SOLARIS_SYS 1994 /* Solaris specific extensible attributes or
- * otherwise named extended system attributes.
- */
-#define STREAM_XATTR_SOLARIS 1995 /* Solaris specific extented attributes */
-#define STREAM_XATTR_DARWIN 1996 /* Darwin (OSX) specific extended attributes */
-#define STREAM_XATTR_FREEBSD 1997 /* FreeBSD specific extended attributes */
-#define STREAM_XATTR_LINUX 1998 /* Linux specific extended attributes */
-#define STREAM_XATTR_NETBSD 1999 /* NetBSD specific extended attributes */
-
-/**
- * File type (Bacula defined).
- * NOTE!!! These are saved in the Attributes record on the tape, so
- * do not change them. If need be, add to them.
- *
- * This is stored as 32 bits on the Volume, but only FT_MASK (16) bits are
- * used for the file type. The upper bits are used to indicate
- * additional optional fields in the attribute record.
- */
-#define FT_MASK 0xFFFF /* Bits used by FT (type) */
-#define FT_LNKSAVED 1 /* hard link to file already saved */
-#define FT_REGE 2 /* Regular file but empty */
-#define FT_REG 3 /* Regular file */
-#define FT_LNK 4 /* Soft Link */
-#define FT_DIREND 5 /* Directory at end (saved) */
-#define FT_SPEC 6 /* Special file -- chr, blk, fifo, sock */
-#define FT_NOACCESS 7 /* Not able to access */
-#define FT_NOFOLLOW 8 /* Could not follow link */
-#define FT_NOSTAT 9 /* Could not stat file */
-#define FT_NOCHG 10 /* Incremental option, file not changed */
-#define FT_DIRNOCHG 11 /* Incremental option, directory not changed */
-#define FT_ISARCH 12 /* Trying to save archive file */
-#define FT_NORECURSE 13 /* No recursion into directory */
-#define FT_NOFSCHG 14 /* Different file system, prohibited */
-#define FT_NOOPEN 15 /* Could not open directory */
-#define FT_RAW 16 /* Raw block device */
-#define FT_FIFO 17 /* Raw fifo device */
-/**
- * The DIRBEGIN packet is sent to the FD file processing routine so
- * that it can filter packets, but otherwise, it is not used
- * or saved */
-#define FT_DIRBEGIN 18 /* Directory at beginning (not saved) */
-#define FT_INVALIDFS 19 /* File system not allowed for */
-#define FT_INVALIDDT 20 /* Drive type not allowed for */
-#define FT_REPARSE 21 /* Win NTFS reparse point */
-#define FT_PLUGIN 22 /* Plugin generated filename */
-#define FT_DELETED 23 /* Deleted file entry */
-#define FT_BASE 24 /* Duplicate base file entry */
-#define FT_RESTORE_FIRST 25 /* Restore this "object" first */
-
-/* Definitions for upper part of type word (see above). */
-#define AR_DATA_STREAM (1<<16) /* Data stream id present */
-
/**
* Tape label types -- stored in catalog
*/
#define ON_PURGE_TRUNCATE 1
/* Size of File Address stored in STREAM_SPARSE_DATA. Do NOT change! */
-#define SPARSE_FADDR_SIZE (sizeof(uint64_t))
+#define OFFSET_FADDR_SIZE (sizeof(uint64_t))
/* Size of crypto length stored at head of crypto buffer. Do NOT change! */
#define CRYPTO_LEN_SIZE ((int)sizeof(uint32_t))
#include "version.h"
#include "bc_types.h"
+#include "streams.h"
+#include "filetypes.h"
#include "baconfig.h"
#include "lib/lib.h"
--- /dev/null
+/*
+ Bacula® - The Network Backup Solution
+
+ Copyright (C) 2001-2010 Free Software Foundation Europe e.V.
+
+ The main author of Bacula is Kern Sibbald, with contributions from
+ many others, a complete list can be found in the file AUTHORS.
+ This program is Free Software; you can redistribute it and/or
+ modify it under the terms of version three of the GNU Affero General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ Bacula® is a registered trademark of Kern Sibbald.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
+/*
+ * File types
+ *
+ * Kern Sibbald MMI
+ *
+ * Extracted from findlib/find.h Nov 2010
+ *
+ */
+
+#ifndef __BFILEOPTS_H
+#define __BFILEOPTS_H
+
+/*
+ * Options saved int "options" of the include/exclude lists.
+ * They are directly jammed ito "flag" of ff packet
+ */
+#define FO_MD5 (1<<1) /* Do MD5 checksum */
+#define FO_GZIP (1<<2) /* Do Zlib compression */
+#define FO_NO_RECURSION (1<<3) /* no recursion in directories */
+#define FO_MULTIFS (1<<4) /* multiple file systems */
+#define FO_SPARSE (1<<5) /* do sparse file checking */
+#define FO_IF_NEWER (1<<6) /* replace if newer */
+#define FO_NOREPLACE (1<<7) /* never replace */
+#define FO_READFIFO (1<<8) /* read data from fifo */
+#define FO_SHA1 (1<<9) /* Do SHA1 checksum */
+#define FO_PORTABLE (1<<10) /* Use portable data format -- no BackupWrite */
+#define FO_MTIMEONLY (1<<11) /* Use mtime rather than mtime & ctime */
+#define FO_KEEPATIME (1<<12) /* Reset access time */
+#define FO_EXCLUDE (1<<13) /* Exclude file */
+#define FO_ACL (1<<14) /* Backup ACLs */
+#define FO_NO_HARDLINK (1<<15) /* don't handle hard links */
+#define FO_IGNORECASE (1<<16) /* Ignore file name case */
+#define FO_HFSPLUS (1<<17) /* Resource forks and Finder Info */
+#define FO_WIN32DECOMP (1<<18) /* Use BackupRead decomposition */
+#define FO_SHA256 (1<<19) /* Do SHA256 checksum */
+#define FO_SHA512 (1<<20) /* Do SHA512 checksum */
+#define FO_ENCRYPT (1<<21) /* Encrypt data stream */
+#define FO_NOATIME (1<<22) /* Use O_NOATIME to prevent atime change */
+#define FO_ENHANCEDWILD (1<<23) /* Enhanced wild card processing */
+#define FO_CHKCHANGES (1<<24) /* Check if file have been modified during backup */
+#define FO_STRIPPATH (1<<25) /* Check for stripping path */
+#define FO_HONOR_NODUMP (1<<26) /* honor NODUMP flag */
+#define FO_XATTR (1<<27) /* Backup Extended Attributes */
+#define FO_DELTA (1<<28) /* Delta data -- i.e. all copies returned on restore */
+#define FO_PLUGIN (1<<29) /* Plugin data stream -- return to plugin on restore */
+#define FO_OFFSETS (1<<30) /* Keep I/O file offsets */
+
+#endif /* __BFILEOPTSS_H */
--- /dev/null
+/*
+ Bacula® - The Network Backup Solution
+
+ Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
+
+ The main author of Bacula is Kern Sibbald, with contributions from
+ many others, a complete list can be found in the file AUTHORS.
+ This program is Free Software; you can redistribute it and/or
+ modify it under the terms of version three of the GNU Affero General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ Bacula® is a registered trademark of Kern Sibbald.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
+/**
+ * Stream definitions. Split from baconfig.h Nov 2010
+ *
+ * Kern Sibbald, MM
+ *
+ */
+
+#ifndef __BFILETYPES_H
+#define __BFILETYPES_H 1
+
+
+/**
+ * File type (Bacula defined).
+ * NOTE!!! These are saved in the Attributes record on the tape, so
+ * do not change them. If need be, add to them.
+ *
+ * This is stored as 32 bits on the Volume, but only FT_MASK (16) bits are
+ * used for the file type. The upper bits are used to indicate
+ * additional optional fields in the attribute record.
+ */
+#define FT_MASK 0xFFFF /* Bits used by FT (type) */
+#define FT_LNKSAVED 1 /* hard link to file already saved */
+#define FT_REGE 2 /* Regular file but empty */
+#define FT_REG 3 /* Regular file */
+#define FT_LNK 4 /* Soft Link */
+#define FT_DIREND 5 /* Directory at end (saved) */
+#define FT_SPEC 6 /* Special file -- chr, blk, fifo, sock */
+#define FT_NOACCESS 7 /* Not able to access */
+#define FT_NOFOLLOW 8 /* Could not follow link */
+#define FT_NOSTAT 9 /* Could not stat file */
+#define FT_NOCHG 10 /* Incremental option, file not changed */
+#define FT_DIRNOCHG 11 /* Incremental option, directory not changed */
+#define FT_ISARCH 12 /* Trying to save archive file */
+#define FT_NORECURSE 13 /* No recursion into directory */
+#define FT_NOFSCHG 14 /* Different file system, prohibited */
+#define FT_NOOPEN 15 /* Could not open directory */
+#define FT_RAW 16 /* Raw block device */
+#define FT_FIFO 17 /* Raw fifo device */
+/**
+ * The DIRBEGIN packet is sent to the FD file processing routine so
+ * that it can filter packets, but otherwise, it is not used
+ * or saved */
+#define FT_DIRBEGIN 18 /* Directory at beginning (not saved) */
+#define FT_INVALIDFS 19 /* File system not allowed for */
+#define FT_INVALIDDT 20 /* Drive type not allowed for */
+#define FT_REPARSE 21 /* Win NTFS reparse point */
+#define FT_PLUGIN 22 /* Plugin generated filename */
+#define FT_DELETED 23 /* Deleted file entry */
+#define FT_BASE 24 /* Duplicate base file entry */
+#define FT_RESTORE_FIRST 25 /* Restore this "object" first */
+#define FT_JUNCTION 26 /* Win32 Junction point */
+
+/* Definitions for upper part of type word (see above). */
+#define AR_DATA_STREAM (1<<16) /* Data stream id present */
+
+#endif /* __BFILETYPES_H */
#define __FILES_H
#include "jcr.h"
+#include "fileopts.h"
#include "bfile.h"
#include "../filed/fd_plugins.h"
int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
#endif
-/*
- * Options saved int "options" of the include/exclude lists.
- * They are directly jammed ito "flag" of ff packet
- */
-#define FO_MD5 (1<<1) /* Do MD5 checksum */
-#define FO_GZIP (1<<2) /* Do Zlib compression */
-#define FO_NO_RECURSION (1<<3) /* no recursion in directories */
-#define FO_MULTIFS (1<<4) /* multiple file systems */
-#define FO_SPARSE (1<<5) /* do sparse file checking */
-#define FO_IF_NEWER (1<<6) /* replace if newer */
-#define FO_NOREPLACE (1<<7) /* never replace */
-#define FO_READFIFO (1<<8) /* read data from fifo */
-#define FO_SHA1 (1<<9) /* Do SHA1 checksum */
-#define FO_PORTABLE (1<<10) /* Use portable data format -- no BackupWrite */
-#define FO_MTIMEONLY (1<<11) /* Use mtime rather than mtime & ctime */
-#define FO_KEEPATIME (1<<12) /* Reset access time */
-#define FO_EXCLUDE (1<<13) /* Exclude file */
-#define FO_ACL (1<<14) /* Backup ACLs */
-#define FO_NO_HARDLINK (1<<15) /* don't handle hard links */
-#define FO_IGNORECASE (1<<16) /* Ignore file name case */
-#define FO_HFSPLUS (1<<17) /* Resource forks and Finder Info */
-#define FO_WIN32DECOMP (1<<18) /* Use BackupRead decomposition */
-#define FO_SHA256 (1<<19) /* Do SHA256 checksum */
-#define FO_SHA512 (1<<20) /* Do SHA512 checksum */
-#define FO_ENCRYPT (1<<21) /* Encrypt data stream */
-#define FO_NOATIME (1<<22) /* Use O_NOATIME to prevent atime change */
-#define FO_ENHANCEDWILD (1<<23) /* Enhanced wild card processing */
-#define FO_CHKCHANGES (1<<24) /* Check if file have been modified during backup */
-#define FO_STRIPPATH (1<<25) /* Check for stripping path */
-#define FO_HONOR_NODUMP (1<<26) /* honor NODUMP flag */
-#define FO_XATTR (1<<27) /* Backup Extended Attributes */
-#define FO_DELTA (1<<28) /* Do delta on file */
+/* For options FO_xxx values see src/fileopts.h */
struct s_included_file {
struct s_included_file *next;
--- /dev/null
+/*
+ Bacula® - The Network Backup Solution
+
+ Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
+
+ The main author of Bacula is Kern Sibbald, with contributions from
+ many others, a complete list can be found in the file AUTHORS.
+ This program is Free Software; you can redistribute it and/or
+ modify it under the terms of version three of the GNU Affero General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ Bacula® is a registered trademark of Kern Sibbald.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
+/**
+ * Stream definitions. Split from baconfig.h Nov 2010
+ *
+ * Kern Sibbald, MM
+ *
+ */
+
+#ifndef __BSTREAMS_H
+#define __BSTREAMS_H 1
+
+
+/**
+ * Stream definitions. Once defined these must NEVER
+ * change as they go on the storage media.
+ * Note, the following streams are passed from the SD to the DIR
+ * so that they may be put into the catalog (actually only the
+ * stat packet part of the attr record is put in the catalog.
+ *
+ * STREAM_UNIX_ATTRIBUTES
+ * STREAM_UNIX_ATTRIBUTES_EX
+ * STREAM_MD5_DIGEST
+ * STREAM_SHA1_DIGEST
+ * STREAM_SHA256_DIGEST
+ * STREAM_SHA512_DIGEST
+ */
+#define STREAM_NONE 0 /* Reserved Non-Stream */
+#define STREAM_UNIX_ATTRIBUTES 1 /* Generic Unix attributes */
+#define STREAM_FILE_DATA 2 /* Standard uncompressed data */
+#define STREAM_MD5_SIGNATURE 3 /* deprecated */
+#define STREAM_MD5_DIGEST 3 /* MD5 digest for the file */
+#define STREAM_GZIP_DATA 4 /* GZip compressed file data */
+#define STREAM_UNIX_ATTRIBUTES_EX 5 /* Extended Unix attr for Win32 EX - Deprecated */
+#define STREAM_SPARSE_DATA 6 /* Sparse data stream */
+#define STREAM_SPARSE_GZIP_DATA 7 /* Sparse gzipped data stream */
+#define STREAM_PROGRAM_NAMES 8 /* program names for program data */
+#define STREAM_PROGRAM_DATA 9 /* Data needing program */
+#define STREAM_SHA1_SIGNATURE 10 /* deprecated */
+#define STREAM_SHA1_DIGEST 10 /* SHA1 digest for the file */
+#define STREAM_WIN32_DATA 11 /* Win32 BackupRead data */
+#define STREAM_WIN32_GZIP_DATA 12 /* Gzipped Win32 BackupRead data */
+#define STREAM_MACOS_FORK_DATA 13 /* Mac resource fork */
+#define STREAM_HFSPLUS_ATTRIBUTES 14 /* Mac OS extra attributes */
+#define STREAM_UNIX_ACCESS_ACL 15 /* Standard ACL attributes on UNIX - Deprecated */
+#define STREAM_UNIX_DEFAULT_ACL 16 /* Default ACL attributes on UNIX - Deprecated */
+#define STREAM_SHA256_DIGEST 17 /* SHA-256 digest for the file */
+#define STREAM_SHA512_DIGEST 18 /* SHA-512 digest for the file */
+#define STREAM_SIGNED_DIGEST 19 /* Signed File Digest, ASN.1, DER Encoded */
+#define STREAM_ENCRYPTED_FILE_DATA 20 /* Encrypted, uncompressed data */
+#define STREAM_ENCRYPTED_WIN32_DATA 21 /* Encrypted, uncompressed Win32 BackupRead data */
+#define STREAM_ENCRYPTED_SESSION_DATA 22 /* Encrypted Session Data, ASN.1, DER Encoded */
+#define STREAM_ENCRYPTED_FILE_GZIP_DATA 23 /* Encrypted, compressed data */
+#define STREAM_ENCRYPTED_WIN32_GZIP_DATA 24 /* Encrypted, compressed Win32 BackupRead data */
+#define STREAM_ENCRYPTED_MACOS_FORK_DATA 25 /* Encrypted, uncompressed Mac resource fork */
+#define STREAM_PLUGIN_NAME 26 /* Plugin "file" string */
+#define STREAM_PLUGIN_DATA 27 /* Plugin specific data */
+#define STREAM_RESTORE_OBJECT 28 /* Plugin restore object */
+
+/**
+ * Additional Stream definitions. Once defined these must NEVER
+ * change as they go on the storage media.
+ *
+ * The Stream numbers from 1000-1999 are reserved for ACL and extended attribute streams.
+ * Each different platform has its own stream id(s), if a platform supports multiple stream types
+ * it should supply different handlers for each type it supports and this should be called
+ * from the stream dispatch function. Currently in this reserved space we allocate the
+ * different acl streams from 1000 on and the different extended attributes streams from
+ * 1999 down. So the two naming spaces grows towards each other.
+ */
+#define STREAM_ACL_AIX_TEXT 1000 /* AIX specific string representation from acl_get */
+#define STREAM_ACL_DARWIN_ACCESS_ACL 1001 /* Darwin (OSX) specific acl_t string representation
+ * from acl_to_text (POSIX acl)
+ */
+#define STREAM_ACL_FREEBSD_DEFAULT_ACL 1002 /* FreeBSD specific acl_t string representation
+ * from acl_to_text (POSIX acl) for default acls.
+ */
+#define STREAM_ACL_FREEBSD_ACCESS_ACL 1003 /* FreeBSD specific acl_t string representation
+ * from acl_to_text (POSIX acl) for access acls.
+ */
+#define STREAM_ACL_HPUX_ACL_ENTRY 1004 /* HPUX specific acl_entry string representation
+ * from acltostr (POSIX acl)
+ */
+#define STREAM_ACL_IRIX_DEFAULT_ACL 1005 /* IRIX specific acl_t string representation
+ * from acl_to_text (POSIX acl) for default acls.
+ */
+#define STREAM_ACL_IRIX_ACCESS_ACL 1006 /* IRIX specific acl_t string representation
+ * from acl_to_text (POSIX acl) for access acls.
+ */
+#define STREAM_ACL_LINUX_DEFAULT_ACL 1007 /* Linux specific acl_t string representation
+ * from acl_to_text (POSIX acl) for default acls.
+ */
+#define STREAM_ACL_LINUX_ACCESS_ACL 1008 /* Linux specific acl_t string representation
+ * from acl_to_text (POSIX acl) for access acls.
+ */
+#define STREAM_ACL_TRU64_DEFAULT_ACL 1009 /* Tru64 specific acl_t string representation
+ * from acl_to_text (POSIX acl) for default acls.
+ */
+#define STREAM_ACL_TRU64_DEFAULT_DIR_ACL 1010 /* Tru64 specific acl_t string representation
+ * from acl_to_text (POSIX acl) for default acls.
+ */
+#define STREAM_ACL_TRU64_ACCESS_ACL 1011 /* Tru64 specific acl_t string representation
+ * from acl_to_text (POSIX acl) for access acls.
+ */
+#define STREAM_ACL_SOLARIS_ACLENT 1012 /* Solaris specific aclent_t string representation
+ * from acltotext or acl_totext (POSIX acl)
+ */
+#define STREAM_ACL_SOLARIS_ACE 1013 /* Solaris specific ace_t string representation from
+ * from acl_totext (NFSv4 or ZFS acl)
+ */
+#define STREAM_ACL_AFS_TEXT 1014 /* AFS specific string representation from pioctl */
+
+#define STREAM_ACL_AIX_AIXC 1015 /* AIX specific string representation from
+ * aclx_printStr (POSIX acl)
+ */
+#define STREAM_ACL_AIX_NFS4 1016 /* AIX specific string representation from
+ * aclx_printStr (NFSv4 acl)
+ */
+#define STREAM_XATTR_IRIX 1990 /* IRIX specific extended attributes */
+#define STREAM_XATTR_TRU64 1991 /* TRU64 specific extended attributes */
+#define STREAM_XATTR_AIX 1992 /* AIX specific extended attributes */
+#define STREAM_XATTR_OPENBSD 1993 /* OpenBSD specific extended attributes */
+#define STREAM_XATTR_SOLARIS_SYS 1994 /* Solaris specific extensible attributes or
+ * otherwise named extended system attributes.
+ */
+#define STREAM_XATTR_SOLARIS 1995 /* Solaris specific extented attributes */
+#define STREAM_XATTR_DARWIN 1996 /* Darwin (OSX) specific extended attributes */
+#define STREAM_XATTR_FREEBSD 1997 /* FreeBSD specific extended attributes */
+#define STREAM_XATTR_LINUX 1998 /* Linux specific extended attributes */
+#define STREAM_XATTR_NETBSD 1999 /* NetBSD specific extended attributes */
+
+#endif /* __BSTREAMS_H */