From: Kern Sibbald Date: Wed, 24 Nov 2010 10:14:02 +0000 (+0100) Subject: Separate definitions of streams, filetypes, and fileoptions to separate files X-Git-Tag: Release-5.2.1~879 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=7ec576f631ee517153901120fc287d856e42fe7d;p=bacula%2Fbacula Separate definitions of streams, filetypes, and fileoptions to separate files --- diff --git a/bacula/src/baconfig.h b/bacula/src/baconfig.h index 825a102088..6d2cc473c9 100644 --- a/bacula/src/baconfig.h +++ b/bacula/src/baconfig.h @@ -80,8 +80,9 @@ #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) @@ -201,167 +202,6 @@ void InitWinAPIWrapper(); */ #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 */ @@ -375,7 +215,7 @@ void InitWinAPIWrapper(); #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)) diff --git a/bacula/src/bacula.h b/bacula/src/bacula.h index f17856f082..ccaa978693 100644 --- a/bacula/src/bacula.h +++ b/bacula/src/bacula.h @@ -169,6 +169,8 @@ extern "C" { #include "version.h" #include "bc_types.h" +#include "streams.h" +#include "filetypes.h" #include "baconfig.h" #include "lib/lib.h" diff --git a/bacula/src/fileopts.h b/bacula/src/fileopts.h new file mode 100644 index 0000000000..c48ff24865 --- /dev/null +++ b/bacula/src/fileopts.h @@ -0,0 +1,75 @@ +/* + 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 */ diff --git a/bacula/src/filetypes.h b/bacula/src/filetypes.h new file mode 100644 index 0000000000..d7bf3b7a33 --- /dev/null +++ b/bacula/src/filetypes.h @@ -0,0 +1,83 @@ +/* + 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 */ diff --git a/bacula/src/findlib/find.h b/bacula/src/findlib/find.h index 10cd6c05be..86710941fd 100644 --- a/bacula/src/findlib/find.h +++ b/bacula/src/findlib/find.h @@ -35,6 +35,7 @@ #define __FILES_H #include "jcr.h" +#include "fileopts.h" #include "bfile.h" #include "../filed/fd_plugins.h" @@ -71,38 +72,7 @@ struct utimbuf { 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; diff --git a/bacula/src/streams.h b/bacula/src/streams.h new file mode 100644 index 0000000000..73d91f7051 --- /dev/null +++ b/bacula/src/streams.h @@ -0,0 +1,157 @@ +/* + 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 */