-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBBHeader.py
More file actions
executable file
·203 lines (156 loc) · 9.39 KB
/
BBHeader.py
File metadata and controls
executable file
·203 lines (156 loc) · 9.39 KB
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
import VMSBackupHelper
import BaseHeader
@VMSBackupHelper.static_init
class BBHeader(BaseHeader.BaseHeader) :
def static_init(self) -> None :
self.kAddressData = VMSBackupHelper.addr()
self.kAddressData.add("W_SIZE", None, None, VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("W_OPSYS", "W_SIZE", "W_SIZE", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("W_SUBSYS", "W_OPSYS", "W_OPSYS", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("W_APPLIC", "W_SUBSYS", "W_SUBSYS", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("L_NUMBER", "W_APPLIC", "W_APPLIC", VMSBackupHelper.sizeof.uint32_t)
self.kAddressData.add("FILL_1", "L_NUMBER", "L_NUMBER", VMSBackupHelper.sizeof.int8_t, 20)
self.kAddressData.add("W_STRUCLEV", "FILL_1", "FILL_1", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("B_STRUCVER", "W_STRUCLEV", None, VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("B_STRUCLEV", "B_STRUCVER", "B_STRUCVER", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("W_VOLNUM", "W_STRUCLEV", "W_STRUCLEV", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("L_CRC", "W_VOLNUM", "W_VOLNUM", VMSBackupHelper.sizeof.uint32_t)
self.kAddressData.add("L_BLOCKSIZE", "L_CRC", "L_CRC", VMSBackupHelper.sizeof.uint32_t)
self.kAddressData.add("L_FLAGS", "L_BLOCKSIZE", "L_BLOCKSIZE", VMSBackupHelper.sizeof.uint32_t)
self.kAddressData.add("V_NOCRC", "L_FLAGS", None, VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("T_SSNAME", "L_FLAGS", "L_FLAGS", VMSBackupHelper.sizeof.int8_t, 32)
self.kAddressData.add("W_FID", "T_SSNAME", "T_SSNAME", VMSBackupHelper.sizeof.uint16_t, 3)
self.kAddressData.add("W_FID_NUM", "W_FID", None, VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("W_FID_SEQ", "W_FID_NUM", "W_FID_NUM", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("W_FID_RVN", "W_FID_SEQ", "W_FID_SEQ", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("B_FID_RVN", "W_FID_RVN", "W_FID_RVN", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("B_FID_NMX", "B_FID_RVN", "B_FID_RVN", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("W_DID", "W_FID", None, VMSBackupHelper.sizeof.uint16_t, 3)
self.kAddressData.add("W_DID_NUM", "W_DID", None, VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("W_DID_SEQ", "W_DID_NUM", "W_DID_NUM", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("W_DID_RVN", "W_DID_SEQ", "W_DID_SEQ", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("B_DID_RVN", "W_DID_RVN", None, VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("B_DID_NMX", "B_DID_RVN", "B_DID_RVN", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("T_FILENAME", "W_FID", "W_FID", VMSBackupHelper.sizeof.int8_t, 128)
self.kAddressData.add("B_RTYPE", "T_FILENAME", "T_FILENAME", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("B_RATTRIB", "B_RTYPE", "B_RTYPE", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("W_RSIZE", "B_RATTRIB", "B_RATTRIB", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("B_BKTSIZE", "W_RSIZE", "W_RSIZE", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("B_VFCSIZE", "B_BKTSIZE", "B_BKTSIZE", VMSBackupHelper.sizeof.uint8_t)
self.kAddressData.add("W_MAXREC", "B_VFCSIZE", "B_VFCSIZE", VMSBackupHelper.sizeof.uint16_t)
self.kAddressData.add("L_FILESIZE", "W_MAXREC", "W_MAXREC", VMSBackupHelper.sizeof.uint32_t)
self.kAddressData.add("T_RESERVED2", "L_FILESIZE", "L_FILESIZE", VMSBackupHelper.sizeof.int8_t, 22)
self.kAddressData.add("W_CHECKSUM", "T_RESERVED2", "T_RESERVED2", VMSBackupHelper.sizeof.uint16_t)
#end
def W_SIZE(self) -> int :
return self.kAddressData.get("W_SIZE", self.kBuffer, self.kCache)
#end
def W_OPSYS(self) -> int :
return self.kAddressData.get("W_OPSYS", self.kBuffer, self.kCache)
#end
def W_SUBSYS(self) -> int :
return self.kAddressData.get("W_SUBSYS", self.kBuffer, self.kCache)
#end
def W_APPLIC(self) -> int :
return self.kAddressData.get("W_APPLIC", self.kBuffer, self.kCache)
#end
def L_NUMBER(self) -> int :
return self.kAddressData.get("L_NUMBER", self.kBuffer, self.kCache)
#end
def W_STRUCLEV(self) -> int :
return self.kAddressData.get("W_STRUCLEV", self.kBuffer, self.kCache)
#end
def B_STRUCVER(self) -> int :
return self.kAddressData.get("B_STRUCVER", self.kBuffer, self.kCache)
#end
def B_STRUCLEV(self) -> int :
return self.kAddressData.get("B_STRUCLEV", self.kBuffer, self.kCache)
#end
def W_VOLNUM(self) -> int :
return self.kAddressData.get("W_VOLNUM", self.kBuffer, self.kCache)
#end
def L_CRC(self) -> int :
return self.kAddressData.get("L_CRC", self.kBuffer, self.kCache)
#end
def L_BLOCKSIZE(self) -> int :
return self.kAddressData.get("L_BLOCKSIZE", self.kBuffer, self.kCache)
#end
def L_FLAGS(self) -> int :
return self.kAddressData.get("L_FLAGS", self.kBuffer, self.kCache)
#end
def V_NOCRC(self) -> int :
return self.kAddressData.get("V_NOCRC", self.kBuffer, self.kCache)
#end
def T_SSNAME(self) -> str :
return "".join([chr(k) for k in self.kAddressData.get("T_SSNAME", self.kBuffer, self.kCache)[1:] if k > 0])
#end
def W_FID(self) -> int :
return self.kAddressData.get("W_FID", self.kBuffer, self.kCache)
#end
def W_FID_NUM(self) -> int :
return self.kAddressData.get("W_FID_NUM", self.kBuffer, self.kCache)
#end
def W_FID_SEQ(self) -> int :
return self.kAddressData.get("W_FID_SEQ", self.kBuffer, self.kCache)
#end
def W_FID_RVN(self) -> int :
return self.kAddressData.get("W_FID_RVN", self.kBuffer, self.kCache)
#end
def B_FID_RVN(self) -> int :
return self.kAddressData.get("B_FID_RVN", self.kBuffer, self.kCache)
#end
def B_FID_NMX(self) -> int :
return self.kAddressData.get("B_FID_NMX", self.kBuffer, self.kCache)
#end
def W_DID(self) -> int :
return self.kAddressData.get("W_DID", self.kBuffer, self.kCache)
#end
def W_DID_NUM(self) -> int :
return self.kAddressData.get("W_DID_NUM", self.kBuffer, self.kCache)
#end
def W_DID_SEQ(self) -> int :
return self.kAddressData.get("W_DID_SEQ", self.kBuffer, self.kCache)
#end
def W_DID_RVN(self) -> int :
return self.kAddressData.get("W_DID_RVN", self.kBuffer, self.kCache)
#end
def B_DID_RVN(self) -> int :
return self.kAddressData.get("B_DID_RVN", self.kBuffer, self.kCache)
#end
def B_DID_NMX(self) -> int :
return self.kAddressData.get("B_DID_NMX", self.kBuffer, self.kCache)
#end
def T_FILENAME(self) -> int :
return self.kAddressData.get("T_FILENAME", self.kBuffer, self.kCache)
#end
def B_RTYPE(self) -> int :
return self.kAddressData.get("B_RTYPE", self.kBuffer, self.kCache)
#end
def B_RATTRIB(self) -> int :
return self.kAddressData.get("B_RATTRIB", self.kBuffer, self.kCache)
#end
def W_RSIZE(self) -> int :
return self.kAddressData.get("W_RSIZE", self.kBuffer, self.kCache)
#end
def B_BKTSIZE(self) -> int :
return self.kAddressData.get("B_BKTSIZE", self.kBuffer, self.kCache)
#end
def B_VFCSIZE(self) -> int :
return self.kAddressData.get("B_VFCSIZE", self.kBuffer, self.kCache)
#end
def W_MAXREC(self) -> int :
return self.kAddressData.get("W_MAXREC", self.kBuffer, self.kCache)
#end
def L_FILESIZE(self) -> int :
return self.kAddressData.get("L_FILESIZE", self.kBuffer, self.kCache)
#end
def W_CHECKSUM(self) -> int :
return self.kAddressData.get("W_CHECKSUM", self.kBuffer, self.kCache)
#end
def GetLength(self) -> bool :
return (self.W_SIZE())
#end
def Validate(self, kBaseHeader) -> bool :
return (self.L_BLOCKSIZE () == 0) or (self.L_BLOCKSIZE () == kBaseHeader.L_BLOCKSIZE ())
#end
#end