/*
- Bacula® - The Network Backup Solution
+ Bacula(R) - The Network Backup Solution
- Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2017 Kern Sibbald
- 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.
+ The original author of Bacula is Kern Sibbald, with contributions
+ from many others, a complete list can be found in the file AUTHORS.
- 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 may use this file and others of this release according to the
+ license defined in the LICENSE file, which includes the Affero General
+ Public License, v3.0 ("AGPLv3") and some additional permissions and
+ terms pursuant to its AGPLv3 Section 7.
- 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.
+ This notice must be preserved when any source code is
+ conveyed and/or propagated.
- 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.
+ Bacula(R) is a registered trademark of Kern Sibbald.
*/
/**
* Stream definitions. Split from baconfig.h Nov 2010
*
* Kern Sibbald, MM
- *
*/
#ifndef __BSTREAMS_H
#define __BSTREAMS_H 1
+/* Stream bits -- these bits are new as of 24Nov10 */
+#define STREAM_BIT_64 (1<<30) /* 64 bit stream (not yet implemented) */
+#define STREAM_BIT_BITS (1<<29) /* Following bits may be set */
+#define STREAM_BIT_PLUGIN (1<<28) /* Item written by a plugin */
+#define STREAM_BIT_DELTA (1<<27) /* Stream contains delta data */
+#define STREAM_BIT_OFFSETS (1<<26) /* Stream has data offset */
+#define STREAM_BIT_PORTABLE_DATA (1<<25) /* Data is portable */
+
+/* TYPE represents our current (old) stream types -- e.g. values 0 - 2047 */
+#define STREAMBASE_TYPE 0 /* base for types */
+#define STREAMBITS_TYPE 11 /* type bit size */
+#define STREAMMASK_TYPE (~((~0)<< STREAMBITS_TYPE) << STREAMBASE_TYPE)
+/*
+ * Note additional base, bits, and masks can be defined for new
+ * ranges or subranges of stream attributes.
+ */
/**
- * Stream definitions. Once defined these must NEVER
+ * Old, but currently used 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
#define STREAM_PLUGIN_NAME 26 /* Plugin "file" string */
#define STREAM_PLUGIN_DATA 27 /* Plugin specific data */
#define STREAM_RESTORE_OBJECT 28 /* Plugin restore object */
+/*
+ * Non-gzip compressed streams. Those streams can handle arbitrary
+ * compression algorithm data as an additional header is stored
+ * at the beginning of the stream. See comp_stream_header definition
+ * in ch.h for more details.
+ */
+#define STREAM_COMPRESSED_DATA 29 /* Compressed file data */
+#define STREAM_SPARSE_COMPRESSED_DATA 30 /* Sparse compressed data stream */
+#define STREAM_WIN32_COMPRESSED_DATA 31 /* Compressed Win32 BackupRead data */
+#define STREAM_ENCRYPTED_FILE_COMPRESSED_DATA 32 /* Encrypted, compressed data */
+#define STREAM_ENCRYPTED_WIN32_COMPRESSED_DATA 33 /* Encrypted, compressed Win32 BackupRead data */
-/**
+#define STREAM_ADATA_BLOCK_HEADER 200 /* Adata block header */
+#define STREAM_ADATA_RECORD_HEADER 201 /* Adata record header */
+
+/*
* Additional Stream definitions. Once defined these must NEVER
* change as they go on the storage media.
*
* 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.
+ *
+ * Rationalize names a bit to correspond to the new XACL classes
+ *
*/
-#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_XACL_AIX_TEXT 1000 /* AIX string of acl_get */
+#define STREAM_XACL_DARWIN_ACCESS 1001 /* Darwin (OSX) acl_t string of acl_to_text (POSIX acl) */
+#define STREAM_XACL_FREEBSD_DEFAULT 1002 /* FreeBSD acl_t string of acl_to_text (POSIX acl) for default acls */
+#define STREAM_XACL_FREEBSD_ACCESS 1003 /* FreeBSD acl_t string of acl_to_text (POSIX acl) for access acls */
+#define STREAM_XACL_HPUX_ACL_ENTRY 1004 /* HPUX acl_entry string of acltostr (POSIX acl) */
+#define STREAM_XACL_IRIX_DEFAULT 1005 /* IRIX acl_t string of acl_to_text (POSIX acl) for default acls */
+#define STREAM_XACL_IRIX_ACCESS 1006 /* IRIX acl_t string of acl_to_text (POSIX acl) for access acls */
+#define STREAM_XACL_LINUX_DEFAULT 1007 /* Linux acl_t string of acl_to_text (POSIX acl) for default acls */
+#define STREAM_XACL_LINUX_ACCESS 1008 /* Linux acl_t string of acl_to_text (POSIX acl) for access acls */
+#define STREAM_XACL_TRU64_DEFAULT 1009 /* Tru64 acl_t string of acl_to_text (POSIX acl) for default acls */
+#define STREAM_XACL_TRU64_DEFAULT_DIR 1010 /* Tru64 acl_t string of acl_to_text (POSIX acl) for default acls */
+#define STREAM_XACL_TRU64_ACCESS 1011 /* Tru64 acl_t string of acl_to_text (POSIX acl) for access acls */
+#define STREAM_XACL_SOLARIS_POSIX 1012 /* Solaris aclent_t string of acltotext or acl_totext (POSIX acl) */
+#define STREAM_XACL_SOLARIS_NFS4 1013 /* Solaris ace_t string of of acl_totext (NFSv4 or ZFS acl) */
+#define STREAM_XACL_AFS_TEXT 1014 /* AFS string of pioctl */
+#define STREAM_XACL_AIX_AIXC 1015 /* AIX string of aclx_printStr (POSIX acl) */
+#define STREAM_XACL_AIX_NFS4 1016 /* AIX string of aclx_printStr (NFSv4 acl) */
+#define STREAM_XACL_FREEBSD_NFS4 1017 /* FreeBSD acl_t string of acl_to_text (NFSv4 or ZFS acl) */
+#define STREAM_XACL_HURD_DEFAULT 1018 /* GNU HURD acl_t string of acl_to_text (POSIX acl) for default acls */
+#define STREAM_XACL_HURD_ACCESS 1019 /* GNU HURD acl_t string of acl_to_text (POSIX acl) for access acls */
+#define STREAM_XACL_PLUGIN_ACL 1020 /* Plugin ACL data for plugin specific acls */
+#define STREAM_XACL_PLUGIN_XATTR 1988 /* Plugin XATTR data for plugin specific xattrs */
+#define STREAM_XACL_HURD_XATTR 1989 /* GNU HURD extended attributes */
+#define STREAM_XACL_IRIX_XATTR 1990 /* IRIX extended attributes */
+#define STREAM_XACL_TRU64_XATTR 1991 /* TRU64 extended attributes */
+#define STREAM_XACL_AIX_XATTR 1992 /* AIX extended attributes */
+#define STREAM_XACL_OPENBSD_XATTR 1993 /* OpenBSD extended attributes */
+#define STREAM_XACL_SOLARIS_SYS_XATTR 1994 /* Solaris extensible attributes or
+ * otherwise named extended system attributes. */
+#define STREAM_XACL_SOLARIS_XATTR 1995 /* Solaris extented attributes */
+#define STREAM_XACL_DARWIN_XATTR 1996 /* Darwin (OSX) extended attributes */
+#define STREAM_XACL_FREEBSD_XATTR 1997 /* FreeBSD extended attributes */
+#define STREAM_XACL_LINUX_XATTR 1998 /* Linux specific attributes */
+#define STREAM_XACL_NETBSD_XATTR 1999 /* NetBSD extended attributes */
-#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 */
+/* WARNING!!! do not define more than 2047 of these old types */
#endif /* __BSTREAMS_H */