2 Bacula(R) - The Network Backup Solution
4 Copyright (C) 2000-2015 Kern Sibbald
5 Copyright (C) 2000-2014 Free Software Foundation Europe e.V.
7 The original author of Bacula is Kern Sibbald, with contributions
8 from many others, a complete list can be found in the file AUTHORS.
10 You may use this file and others of this release according to the
11 license defined in the LICENSE file, which includes the Affero General
12 Public License, v3.0 ("AGPLv3") and some additional permissions and
13 terms pursuant to its AGPLv3 Section 7.
15 This notice must be preserved when any source code is
16 conveyed and/or propagated.
18 Bacula(R) is a registered trademark of Kern Sibbald.
21 * Stream definitions. Split from baconfig.h Nov 2010
28 #define __BSTREAMS_H 1
30 /* Stream bits -- these bits are new as of 24Nov10 */
31 #define STREAM_BIT_64 (1<<30) /* 64 bit stream (not yet implemented) */
32 #define STREAM_BIT_BITS (1<<29) /* Following bits may be set */
33 #define STREAM_BIT_PLUGIN (1<<28) /* Item written by a plugin */
34 #define STREAM_BIT_DELTA (1<<27) /* Stream contains delta data */
35 #define STREAM_BIT_OFFSETS (1<<26) /* Stream has data offset */
36 #define STREAM_BIT_PORTABLE_DATA (1<<25) /* Data is portable */
38 /* TYPE represents our current (old) stream types -- e.g. values 0 - 2047 */
39 #define STREAMBASE_TYPE 0 /* base for types */
40 #define STREAMBITS_TYPE 11 /* type bit size */
41 #define STREAMMASK_TYPE (~((~0)<< STREAMBITS_TYPE) << STREAMBASE_TYPE)
43 * Note additional base, bits, and masks can be defined for new
44 * ranges or subranges of stream attributes.
48 * Old, but currently used Stream definitions. Once defined these must NEVER
49 * change as they go on the storage media.
50 * Note, the following streams are passed from the SD to the DIR
51 * so that they may be put into the catalog (actually only the
52 * stat packet part of the attr record is put in the catalog.
54 * STREAM_UNIX_ATTRIBUTES
55 * STREAM_UNIX_ATTRIBUTES_EX
58 * STREAM_SHA256_DIGEST
59 * STREAM_SHA512_DIGEST
61 #define STREAM_NONE 0 /* Reserved Non-Stream */
62 #define STREAM_UNIX_ATTRIBUTES 1 /* Generic Unix attributes */
63 #define STREAM_FILE_DATA 2 /* Standard uncompressed data */
64 #define STREAM_MD5_SIGNATURE 3 /* deprecated */
65 #define STREAM_MD5_DIGEST 3 /* MD5 digest for the file */
66 #define STREAM_GZIP_DATA 4 /* GZip compressed file data */
67 #define STREAM_UNIX_ATTRIBUTES_EX 5 /* Extended Unix attr for Win32 EX - Deprecated */
68 #define STREAM_SPARSE_DATA 6 /* Sparse data stream */
69 #define STREAM_SPARSE_GZIP_DATA 7 /* Sparse gzipped data stream */
70 #define STREAM_PROGRAM_NAMES 8 /* program names for program data */
71 #define STREAM_PROGRAM_DATA 9 /* Data needing program */
72 #define STREAM_SHA1_SIGNATURE 10 /* deprecated */
73 #define STREAM_SHA1_DIGEST 10 /* SHA1 digest for the file */
74 #define STREAM_WIN32_DATA 11 /* Win32 BackupRead data */
75 #define STREAM_WIN32_GZIP_DATA 12 /* Gzipped Win32 BackupRead data */
76 #define STREAM_MACOS_FORK_DATA 13 /* Mac resource fork */
77 #define STREAM_HFSPLUS_ATTRIBUTES 14 /* Mac OS extra attributes */
78 #define STREAM_UNIX_ACCESS_ACL 15 /* Standard ACL attributes on UNIX - Deprecated */
79 #define STREAM_UNIX_DEFAULT_ACL 16 /* Default ACL attributes on UNIX - Deprecated */
80 #define STREAM_SHA256_DIGEST 17 /* SHA-256 digest for the file */
81 #define STREAM_SHA512_DIGEST 18 /* SHA-512 digest for the file */
82 #define STREAM_SIGNED_DIGEST 19 /* Signed File Digest, ASN.1, DER Encoded */
83 #define STREAM_ENCRYPTED_FILE_DATA 20 /* Encrypted, uncompressed data */
84 #define STREAM_ENCRYPTED_WIN32_DATA 21 /* Encrypted, uncompressed Win32 BackupRead data */
85 #define STREAM_ENCRYPTED_SESSION_DATA 22 /* Encrypted Session Data, ASN.1, DER Encoded */
86 #define STREAM_ENCRYPTED_FILE_GZIP_DATA 23 /* Encrypted, compressed data */
87 #define STREAM_ENCRYPTED_WIN32_GZIP_DATA 24 /* Encrypted, compressed Win32 BackupRead data */
88 #define STREAM_ENCRYPTED_MACOS_FORK_DATA 25 /* Encrypted, uncompressed Mac resource fork */
89 #define STREAM_PLUGIN_NAME 26 /* Plugin "file" string */
90 #define STREAM_PLUGIN_DATA 27 /* Plugin specific data */
91 #define STREAM_RESTORE_OBJECT 28 /* Plugin restore object */
93 * Non-gzip compressed streams. Those streams can handle arbitrary
94 * compression algorithm data as an additional header is stored
95 * at the beginning of the stream. See comp_stream_header definition
96 * in ch.h for more details.
98 #define STREAM_COMPRESSED_DATA 29 /* Compressed file data */
99 #define STREAM_SPARSE_COMPRESSED_DATA 30 /* Sparse compressed data stream */
100 #define STREAM_WIN32_COMPRESSED_DATA 31 /* Compressed Win32 BackupRead data */
101 #define STREAM_ENCRYPTED_FILE_COMPRESSED_DATA 32 /* Encrypted, compressed data */
102 #define STREAM_ENCRYPTED_WIN32_COMPRESSED_DATA 33 /* Encrypted, compressed Win32 BackupRead data */
105 * Additional Stream definitions. Once defined these must NEVER
106 * change as they go on the storage media.
108 * The Stream numbers from 1000-1999 are reserved for ACL and extended attribute streams.
109 * Each different platform has its own stream id(s), if a platform supports multiple stream types
110 * it should supply different handlers for each type it supports and this should be called
111 * from the stream dispatch function. Currently in this reserved space we allocate the
112 * different acl streams from 1000 on and the different extended attributes streams from
113 * 1999 down. So the two naming spaces grows towards each other.
115 #define STREAM_ACL_AIX_TEXT 1000 /* AIX string of acl_get */
116 #define STREAM_ACL_DARWIN_ACCESS 1001 /* Darwin (OSX) acl_t string of acl_to_text (POSIX acl) */
117 #define STREAM_ACL_FREEBSD_DEFAULT 1002 /* FreeBSD acl_t string of acl_to_text (POSIX acl) for default acls */
118 #define STREAM_ACL_FREEBSD_ACCESS 1003 /* FreeBSD acl_t string of acl_to_text (POSIX acl) for access acls */
119 #define STREAM_ACL_HPUX_ACL_ENTRY 1004 /* HPUX acl_entry string of acltostr (POSIX acl) */
120 #define STREAM_ACL_IRIX_DEFAULT 1005 /* IRIX acl_t string of acl_to_text (POSIX acl) for default acls */
121 #define STREAM_ACL_IRIX_ACCESS 1006 /* IRIX acl_t string of acl_to_text (POSIX acl) for access acls */
122 #define STREAM_ACL_LINUX_DEFAULT 1007 /* Linux acl_t string of acl_to_text (POSIX acl) for default acls */
123 #define STREAM_ACL_LINUX_ACCESS 1008 /* Linux acl_t string of acl_to_text (POSIX acl) for access acls */
124 #define STREAM_ACL_TRU64_DEFAULT 1009 /* Tru64 acl_t string of acl_to_text (POSIX acl) for default acls */
125 #define STREAM_ACL_TRU64_DEFAULT_DIR 1010 /* Tru64 acl_t string of acl_to_text (POSIX acl) for default acls */
126 #define STREAM_ACL_TRU64_ACCESS 1011 /* Tru64 acl_t string of acl_to_text (POSIX acl) for access acls */
127 #define STREAM_ACL_SOLARIS_POSIX 1012 /* Solaris aclent_t string of acltotext or acl_totext (POSIX acl) */
128 #define STREAM_ACL_SOLARIS_NFS4 1013 /* Solaris ace_t string of of acl_totext (NFSv4 or ZFS acl) */
129 #define STREAM_ACL_AFS_TEXT 1014 /* AFS string of pioctl */
130 #define STREAM_ACL_AIX_AIXC 1015 /* AIX string of aclx_printStr (POSIX acl) */
131 #define STREAM_ACL_AIX_NFS4 1016 /* AIX string of aclx_printStr (NFSv4 acl) */
132 #define STREAM_ACL_FREEBSD_NFS4 1017 /* FreeBSD acl_t string of acl_to_text (NFSv4 or ZFS acl) */
133 #define STREAM_ACL_HURD_DEFAULT 1018 /* GNU HURD acl_t string of acl_to_text (POSIX acl) for default acls */
134 #define STREAM_ACL_HURD_ACCESS 1019 /* GNU HURD acl_t string of acl_to_text (POSIX acl) for access acls */
135 #define STREAM_XATTR_HURD 1989 /* GNU HURD extended attributes */
136 #define STREAM_XATTR_IRIX 1990 /* IRIX extended attributes */
137 #define STREAM_XATTR_TRU64 1991 /* TRU64 extended attributes */
138 #define STREAM_XATTR_AIX 1992 /* AIX extended attributes */
139 #define STREAM_XATTR_OPENBSD 1993 /* OpenBSD extended attributes */
140 #define STREAM_XATTR_SOLARIS_SYS 1994 /* Solaris extensible attributes or
141 * otherwise named extended system attributes.
143 #define STREAM_XATTR_SOLARIS 1995 /* Solaris extented attributes */
144 #define STREAM_XATTR_DARWIN 1996 /* Darwin (OSX) extended attributes */
145 #define STREAM_XATTR_FREEBSD 1997 /* FreeBSD extended attributes */
146 #define STREAM_XATTR_LINUX 1998 /* Linux specific attributes */
147 #define STREAM_XATTR_NETBSD 1999 /* NetBSD extended attributes */
149 /* WARNING!!! do not define more than 2047 of these old types */
151 #endif /* __BSTREAMS_H */