summaryrefslogtreecommitdiffstats
path: root/private/utils/ntbackup/inc/fsstream.h
blob: e4006ed11b84b8d9681855146a8735ca6fb328ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/**
Copyright(c) Maynard Electronics, Inc. 1984-89


     Name:           fsstream.h

     Date Updated:   $./FDT$ $./FTM$

     Description:    This file contains stream info structure and related
                     definitions for the file system internals.

     Location:       BE_PUBLIC


     $Log:   M:/LOGFILES/FSSTREAM.H_V  $

   Rev 1.14   06 Dec 1993 11:44:30   BARRY
Corrected stream headers for path/file names

   Rev 1.13   09 Jun 1993 15:35:50   MIKEP
enable c++

   Rev 1.12   31 Mar 1993 08:51:00   MARILYN
changed the CRCD checksum stream it to CSUM

   Rev 1.11   01 Mar 1993 17:33:12   MARILYN
added a CRCD stream header id for checksum streams

   Rev 1.10   17 Nov 1992 16:04:34   BARRY
Changed ULNK to LINK.

   Rev 1.9   17 Nov 1992 14:15:26   GREGG
Added PAD stream type.

   Rev 1.8   13 Nov 1992 16:46:00   DON
Added SMS Stream Header IDs

   Rev 1.7   11 Nov 1992 10:33:02   TIMN
Changed macro names due to OS2 compiler confusion

   Rev 1.6   26 Oct 1992 17:58:46   BARRY
Changed NTFS link id.

   Rev 1.5   21 Oct 1992 19:37:54   BARRY
Added LINK stream header type for NTFS linked files.

   Rev 1.4   16 Oct 1992 15:42:04   STEVEN
fix stream size problem

   Rev 1.3   16 Oct 1992 10:49:50   STEVEN
make stream header with uint64 instead of two 32

   Rev 1.2   14 Oct 1992 12:38:10   TIMN
Moved macros for stream infos from fsys_prv.h

   Rev 1.1   06 Oct 1992 13:33:08   TIMN
Added fs stream attrib normal

**/

#ifndef   _fsstream_h_
#define   _fsstream_h_


/* begin include list */

/** are the tf_attrib defines included **/
#ifndef STREAM_VARIABLE
#    include "tfldefs.h"
#endif

/* $end$ include list */


typedef struct STREAM_INFO *STREAM_INFO_PTR;
typedef struct STREAM_INFO {
     UINT32    id ;
     UINT16    fs_attrib ;
     UINT16    tf_attrib ;
     UINT64    size ;
} STREAM_INFO;


/** stream id values **/

#define STRM_INVALID          0
#define STRM_GENERIC_DATA     0x4e415453     /* 'STAN' */
#define STRM_PAD              0x44415053     /* 'SPAD' */

#define STRM_PATH_NAME        0x4d414e50     /* 'PNAM' */
#define STRM_FILE_NAME        0x4d414e46     /* 'FNAM' */

#define STRM_OTC_SM           0x504d5354     /* 'TSMP' On Tape Catalog Set Map */
#define STRM_OTC_FDD          0x44444654     /* 'TFDD' On Tape Catalog File/Directory Detail */

#define STRM_OS2_EA           0x4145324f     /* 'O2EA' */
#define STRM_OS2_ACL          0x4c43414f     /* 'OACL' */

#define STRM_NT_EA            0x4145544e     /* 'NTEA' */
#define STRM_NT_ACL           0x4c43414e     /* 'NACL' */

#define STRM_MAC_RESOURCE     0x4353524d     /* 'MRSC' */
#define STRM_NOV_TRUST_286    0x3638324e     /* 'N286' */
#define STRM_NOV_TRUST_386    0x3638334e     /* 'N386' */
#define STRM_NTFS_ALT_DATA    0x54414441     /* 'ADAT' */

#define STRM_NTFS_LINK        0x4b4e494c     /* 'LINK' */

#define STRM_SMS_DATA         0x44534d53     /* 'SMSD' */
#define STRM_CHECKSUM_DATA    0x4d555343     /* 'CSUM' */

#define STRM_EMS_MONO_DB      0x42444d58     /* 'XMDB'  */
#define STRM_EMS_MONO_LOG     0x474c4f58     /* 'XLOG' */
#define STRM_EMS_MONO_PATHS   0x48545058     /* 'XPTH' */

/** stream attrib values (fs) **/

#define STRM_ATTRIB_NORMAL                     0x0000
#define STRM_ATTRIB_MODIFIED_ON_READ           0x0001
#define STRM_ATTRIB_CONTAINS_SECURITY          0x0002


/** stream macros **/

#define FS_InvalidateStrmId(s_info)     ( (s_info)->id = STRM_INVALID )

#define FS_IsStrmGeneric(s_info)        ( (s_info)->id == STRM_GENERIC_DATA )
#define FS_IsStrmIdInvalid(s_info)      ( (s_info)->id == STRM_INVALID )

#define FS_IsStrmVariableLength(s_info) \
               ( (s_info)->tf_attrib & STREAM_VARIABLE )

#define FS_IsStrmModifiedDuringRead(s_info) \
               ( (s_info)->fs_attrib & STRM_ATTRIB_MODIFIED_ON_READ )

#define FS_IsStreamChecksumed(s_info) \
               ( (s_info)->tf_attrib & STREAM_CHECKSUMED ) 

#define FS_GetStrmId(s_info)              ( (s_info)->id )
#define FS_GetStrmAttrib(s_info)          ( (s_info)->fs_attrib )
#define FS_GetStrmSizeLo(s_info)          ( (s_info)->size.lsw )
#define FS_GetStrmSizeHi(s_info)          ( (s_info)->size.msw )

#define FS_SetStrmId(s_info,Id)           ( (s_info)->id = Id )
#define FS_SetStrmAttrib(s_info,fsAttrib) ( (s_info)->fs_attrib = fsAttrib )
#define FS_SetStrmSizeLo(s_info,sizelo)   ( (s_info)->size.lsw = sizelo )
#define FS_SetStrmSizeHi(s_info,sizehi)   ( (s_info)->size.msw = sizehi )

#endif