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