udftools

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ecma_167.h
Go to the documentation of this file.
1 /*
2 * ecma_167.h
3 *
4 * This file is based on ECMA-167 3rd edition (June 1997)
5 * http://www.ecma.ch
6 *
7 * Copyright (c) 2001-2002 Ben Fennema <bfennema@falcon.csc.calpoly.edu>
8 * All rights reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions, and the following disclaimer,
15 * without modification.
16 * 2. The name of the author may not be used to endorse or promote products
17 * derived from this software without specific prior written permission.
18 *
19 * Alternatively, this software may be distributed under the terms of the
20 * GNU Public License ("GPL").
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
26 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
40 #include <inttypes.h>
41
42 #ifndef _ECMA_167_H
43 #define _ECMA_167_H 1
44
45 /* Character set specification (ECMA 167r3 1/7.2.1) */
46 typedef struct
47 {
48 uint8_t charSetType;
49 uint8_t charSetInfo[63];
50 } __attribute__ ((packed)) charspec;
51
52 /* Character Set Type (ECMA 167r3 1/7.2.1.1) */
53 #define CHARSPEC_TYPE_CS0 0x00 /* (1/7.2.2) */
54 #define CHARSPEC_TYPE_CS1 0x01 /* (1/7.2.3) */
55 #define CHARSPEC_TYPE_CS2 0x02 /* (1/7.2.4) */
56 #define CHARSPEC_TYPE_CS3 0x03 /* (1/7.2.5) */
57 #define CHARSPEC_TYPE_CS4 0x04 /* (1/7.2.6) */
58 #define CHARSPEC_TYPE_CS5 0x05 /* (1/7.2.7) */
59 #define CHARSPEC_TYPE_CS6 0x06 /* (1/7.2.8) */
60 #define CHARSPEC_TYPE_CS7 0x07 /* (1/7.2.9) */
61 #define CHARSPEC_TYPE_CS8 0x08 /* (1/7.2.10) */
62
63 typedef uint8_t dstring;
64
65 /* Timestamp (ECMA 167r3 1/7.3) */
66 typedef struct
67 {
68 uint16_t typeAndTimezone;
69 int16_t year;
70 uint8_t month;
71 uint8_t day;
72 uint8_t hour;
73 uint8_t minute;
74 uint8_t second;
75 uint8_t centiseconds;
76 uint8_t hundredsOfMicroseconds;
77 uint8_t microseconds;
78 } __attribute__ ((packed)) timestamp;
79
80 /* Type and Time Zone (ECMA 167r3 1/7.3.1) */
81 #define TIMESTAMP_TYPE_MASK 0xF000
82 #define TIMESTAMP_TYPE_CUT 0x0000
83 #define TIMESTAMP_TYPE_LOCAL 0x1000
84 #define TIMESTAMP_TYPE_AGREEMENT 0x2000
85 #define TIMESTAMP_TIMEZONE_MASK 0x0FFF
86
87 /* Entity identifier (ECMA 167r3 1/7.4) */
88 typedef struct
89 {
90 uint8_t flags;
91 uint8_t ident[23];
92 uint8_t identSuffix[8];
93 } __attribute__ ((packed)) regid;
94
95 /* Flags (ECMA 167r3 1/7.4.1) */
96 #define ENTITYID_FLAGS_DIRTY 0x00
97 #define ENTITYID_FLAGS_PROTECTED 0x01
98
99 /* Volume Structure Descriptor (ECMA 167r3 2/9.1) */
100 #define VSD_STD_ID_LEN 5
101 struct volStructDesc
102 {
103 uint8_t structType;
104 uint8_t stdIdent[VSD_STD_ID_LEN];
105 uint8_t structVersion;
106 uint8_t structData[2041];
107 } __attribute__ ((packed));
108
109 /* Standard Identifier (EMCA 167r2 2/9.1.2) */
110 #define VSD_STD_ID_NSR02 "NSR02" /* (3/9.1) */
111 #define VSD_STD_ID_NSR01 "NSR01" /* (3/9.1) */
112
113 /* Standard Identifier (ECMA 167r3 2/9.1.2) */
114 #define VSD_STD_ID_BEA01 "BEA01" /* (2/9.2) */
115 #define VSD_STD_ID_BOOT2 "BOOT2" /* (2/9.4) */
116 #define VSD_STD_ID_CD001 "CD001" /* (ECMA-119) */
117 #define VSD_STD_ID_CDW02 "CDW02" /* (ECMA-168) */
118 #define VSD_STD_ID_NSR03 "NSR03" /* (3/9.1) */
119 #define VSD_STD_ID_TEA01 "TEA01" /* (2/9.3) */
120
121 /* Beginning Extended Area Descriptor (ECMA 167r3 2/9.2) */
122 struct beginningExtendedAreaDesc
123 {
124 uint8_t structType;
125 uint8_t stdIdent[VSD_STD_ID_LEN];
126 uint8_t structVersion;
127 uint8_t structData[2041];
128 } __attribute__ ((packed));
129
130 /* Terminating Extended Area Descriptor (ECMA 167r3 2/9.3) */
131 struct terminatingExtendedAreaDesc
132 {
133 uint8_t structType;
134 uint8_t stdIdent[VSD_STD_ID_LEN];
135 uint8_t structVersion;
136 uint8_t structData[2041];
137 } __attribute__ ((packed));
138
139 /* Boot Descriptor (ECMA 167r3 2/9.4) */
140 struct bootDesc
141 {
142 uint8_t structType;
143 uint8_t stdIdent[VSD_STD_ID_LEN];
144 uint8_t structVersion;
145 uint8_t reserved1;
146 regid archType;
147 regid bootIdent;
148 uint32_t bootExtLocation;
149 uint32_t bootExtLength;
150 uint64_t loadAddress;
151 uint64_t startAddress;
152 timestamp descCreationDateAndTime;
153 uint16_t flags;
154 uint8_t reserved2[32];
155 uint8_t bootUse[1906];
156 } __attribute__ ((packed));
157
158 /* Flags (ECMA 167r3 2/9.4.12) */
159 #define BOOT_FLAGS_ERASE 0x01
160
161 /* Extent Descriptor (ECMA 167r3 3/7.1) */
162 typedef struct
163 {
164 uint32_t extLength;
165 uint32_t extLocation;
166 } __attribute__ ((packed)) extent_ad;
167
168 /* Descriptor Tag (ECMA 167r3 3/7.2) */
169 typedef struct
170 {
171 uint16_t tagIdent;
172 uint16_t descVersion;
173 uint8_t tagChecksum;
174 uint8_t reserved;
175 uint16_t tagSerialNum;
176 uint16_t descCRC;
177 uint16_t descCRCLength;
178 uint32_t tagLocation;
179 } __attribute__ ((packed)) tag;
180
181 /* Tag Identifier (ECMA 167r3 3/7.2.1) */
182 #define TAG_IDENT_PVD 0x0001
183 #define TAG_IDENT_AVDP 0x0002
184 #define TAG_IDENT_VDP 0x0003
185 #define TAG_IDENT_IUVD 0x0004
186 #define TAG_IDENT_PD 0x0005
187 #define TAG_IDENT_LVD 0x0006
188 #define TAG_IDENT_USD 0x0007
189 #define TAG_IDENT_TD 0x0008
190 #define TAG_IDENT_LVID 0x0009
191
192 /* NSR Descriptor (ECMA 167r3 3/9.1) */
193 struct NSRDesc
194 {
195 uint8_t structType;
196 uint8_t stdIdent[VSD_STD_ID_LEN];
197 uint8_t structVersion;
198 uint8_t reserved;
199 uint8_t structData[2040];
200 } __attribute__ ((packed));
201
202 /* Primary Volume Descriptor (ECMA 167r3 3/10.1) */
203 struct primaryVolDesc
204 {
205 tag descTag;
206 uint32_t volDescSeqNum;
207 uint32_t primaryVolDescNum;
208 dstring volIdent[32];
209 uint16_t volSeqNum;
210 uint16_t maxVolSeqNum;
211 uint16_t interchangeLvl;
212 uint16_t maxInterchangeLvl;
213 uint32_t charSetList;
214 uint32_t maxCharSetList;
215 dstring volSetIdent[128];
216 charspec descCharSet;
217 charspec explanatoryCharSet;
218 extent_ad volAbstract;
219 extent_ad volCopyright;
220 regid appIdent;
221 timestamp recordingDateAndTime;
222 regid impIdent;
223 uint8_t impUse[64];
224 uint32_t predecessorVolDescSeqLocation;
225 uint16_t flags;
226 uint8_t reserved[22];
227 } __attribute__ ((packed));
228
229 /* Flags (ECMA 167r3 3/10.1.21) */
230 #define PVD_FLAGS_VSID_COMMON 0x0001
231
232 /* Anchor Volume Descriptor Pointer (ECMA 167r3 3/10.2) */
233 struct anchorVolDescPtr
234 {
235 tag descTag;
236 extent_ad mainVolDescSeqExt;
237 extent_ad reserveVolDescSeqExt;
238 uint8_t reserved[480];
239 } __attribute__ ((packed));
240
241 /* Volume Descriptor Pointer (ECMA 167r3 3/10.3) */
242 struct volDescPtr
243 {
244 tag descTag;
245 uint32_t volDescSeqNum;
246 extent_ad nextVolDescSeqExt;
247 uint8_t reserved[484];
248 } __attribute__ ((packed));
249
250 /* Implementation Use Volume Descriptor (ECMA 167r3 3/10.4) */
251 struct impUseVolDesc
252 {
253 tag descTag;
254 uint32_t volDescSeqNum;
255 regid impIdent;
256 uint8_t impUse[460];
257 } __attribute__ ((packed));
258
259 /* Partition Descriptor (ECMA 167r3 3/10.5) */
260 struct partitionDesc
261 {
262 tag descTag;
263 uint32_t volDescSeqNum;
264 uint16_t partitionFlags;
265 uint16_t partitionNumber;
266 regid partitionContents;
267 uint8_t partitionContentsUse[128];
268 uint32_t accessType;
269 uint32_t partitionStartingLocation;
270 uint32_t partitionLength;
271 regid impIdent;
272 uint8_t impUse[128];
273 uint8_t reserved[156];
274 } __attribute__ ((packed));
275
276 /* Partition Flags (ECMA 167r3 3/10.5.3) */
277 #define PD_PARTITION_FLAGS_ALLOC 0x0001
278
279 /* Partition Contents (ECMA 167r2 3/10.5.3) */
280 #define PD_PARTITION_CONTENTS_NSR02 "+NSR02"
281
282 /* Partition Contents (ECMA 167r3 3/10.5.5) */
283 #define PD_PARTITION_CONTENTS_FDC01 "+FDC01"
284 #define PD_PARTITION_CONTENTS_CD001 "+CD001"
285 #define PD_PARTITION_CONTENTS_CDW02 "+CDW02"
286 #define PD_PARTITION_CONTENTS_NSR03 "+NSR03"
287
288 /* Access Type (ECMA 167r3 3/10.5.7) */
289 #define PD_ACCESS_TYPE_NONE 0x00000000
290 #define PD_ACCESS_TYPE_READ_ONLY 0x00000001
291 #define PD_ACCESS_TYPE_WRITE_ONCE 0x00000002
292 #define PD_ACCESS_TYPE_REWRITABLE 0x00000003
293 #define PD_ACCESS_TYPE_OVERWRITABLE 0x00000004
294
295 /* Logical Volume Descriptor (ECMA 167r3 3/10.6) */
296 struct logicalVolDesc
297 {
298 tag descTag;
299 uint32_t volDescSeqNum;
300 charspec descCharSet;
301 dstring logicalVolIdent[128];
302 uint32_t logicalBlockSize;
303 regid domainIdent;
304 uint8_t logicalVolContentsUse[16];
305 uint32_t mapTableLength;
306 uint32_t numPartitionMaps;
307 regid impIdent;
308 uint8_t impUse[128];
309 extent_ad integritySeqExt;
310 uint8_t partitionMaps[0];
311 } __attribute__ ((packed));
312
313 /* Generic Partition Map (ECMA 167r3 3/10.7.1) */
314 struct genericPartitionMap
315 {
316 uint8_t partitionMapType;
317 uint8_t partitionMapLength;
318 uint8_t partitionMapping[0];
319 } __attribute__ ((packed));
320
321 /* Partition Map Type (ECMA 167r3 3/10.7.1.1) */
322 #define GP_PARTITION_MAP_TYPE_UNDEF 0x00
323 #define GP_PARTIITON_MAP_TYPE_1 0x01
324 #define GP_PARTITION_MAP_TYPE_2 0x02
325
326 /* Type 1 Partition Map (ECMA 167r3 3/10.7.2) */
327 struct genericPartitionMap1
328 {
329 uint8_t partitionMapType;
330 uint8_t partitionMapLength;
331 uint16_t volSeqNum;
332 uint16_t partitionNum;
333 } __attribute__ ((packed));
334
335 /* Type 2 Partition Map (ECMA 167r3 3/10.7.3) */
336 struct genericPartitionMap2
337 {
338 uint8_t partitionMapType;
339 uint8_t partitionMapLength;
340 uint8_t partitionIdent[62];
341 } __attribute__ ((packed));
342
343 /* Unallocated Space Descriptor (ECMA 167r3 3/10.8) */
344 struct unallocSpaceDesc
345 {
346 tag descTag;
347 uint32_t volDescSeqNum;
348 uint32_t numAllocDescs;
349 extent_ad allocDescs[0];
350 } __attribute__ ((packed));
351
352 /* Terminating Descriptor (ECMA 167r3 3/10.9) */
353 struct terminatingDesc
354 {
355 tag descTag;
356 uint8_t reserved[496];
357 } __attribute__ ((packed));
358
359 /* Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10) */
360 struct logicalVolIntegrityDesc
361 {
362 tag descTag;
363 timestamp recordingDateAndTime;
364 uint32_t integrityType;
365 extent_ad nextIntegrityExt;
366 uint8_t logicalVolContentsUse[32];
367 uint32_t numOfPartitions;
368 uint32_t lengthOfImpUse;
369 uint32_t freeSpaceTable[0];
370 uint32_t sizeTable[0];
371 uint8_t impUse[0];
372 } __attribute__ ((packed));
373
374 /* Integrity Type (ECMA 167r3 3/10.10.3) */
375 #define LVID_INTEGRITY_TYPE_OPEN 0x00000000
376 #define LVID_INTEGRITY_TYPE_CLOSE 0x00000001
377
378 /* Recorded Address (ECMA 167r3 4/7.1) */
379 typedef struct
380 {
381 uint32_t logicalBlockNum;
382 uint16_t partitionReferenceNum;
383 } __attribute__ ((packed)) lb_addr;
384
385 /* Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */
386 typedef struct
387 {
388 uint32_t extLength;
389 uint32_t extPosition;
390 } __attribute__ ((packed)) short_ad;
391
392 /* Long Allocation Descriptor (ECMA 167r3 4/14.14.2) */
393 typedef struct
394 {
395 uint32_t extLength;
396 lb_addr extLocation;
397 uint8_t impUse[6];
398 } __attribute__ ((packed)) long_ad;
399
400 /* Extended Allocation Descriptor (ECMA 167r3 4/14.14.3) */
401 typedef struct
402 {
403 uint32_t extLength;
404 uint32_t recordedLength;
405 uint32_t informationLength;
406 lb_addr extLocation;
407 } __attribute__ ((packed)) ext_ad;
408
409 /* Descriptor Tag (ECMA 167r3 4/7.2 - See 3/7.2) */
410
411 /* Tag Identifier (ECMA 167r3 4/7.2.1) */
412 #define TAG_IDENT_FSD 0x0100
413 #define TAG_IDENT_FID 0x0101
414 #define TAG_IDENT_AED 0x0102
415 #define TAG_IDENT_IE 0x0103
416 #define TAG_IDENT_TE 0x0104
417 #define TAG_IDENT_FE 0x0105
418 #define TAG_IDENT_EAHD 0x0106
419 #define TAG_IDENT_USE 0x0107
420 #define TAG_IDENT_SBD 0x0108
421 #define TAG_IDENT_PIE 0x0109
422 #define TAG_IDENT_EFE 0x010A
423
424 /* File Set Descriptor (ECMA 167r3 4/14.1) */
425 struct fileSetDesc
426 {
427 tag descTag;
428 timestamp recordingDateAndTime;
429 uint16_t interchangeLvl;
430 uint16_t maxInterchangeLvl;
431 uint32_t charSetList;
432 uint32_t maxCharSetList;
433 uint32_t fileSetNum;
434 uint32_t fileSetDescNum;
435 charspec logicalVolIdentCharSet;
436 dstring logicalVolIdent[128];
437 charspec fileSetCharSet;
438 dstring fileSetIdent[32];
439 dstring copyrightFileIdent[32];
440 dstring abstractFileIdent[32];
441 long_ad rootDirectoryICB;
442 regid domainIdent;
443 long_ad nextExt;
444 long_ad streamDirectoryICB;
445 uint8_t reserved[32];
446 } __attribute__ ((packed));
447
448 /* Partition Header Descriptor (ECMA 167r3 4/14.3) */
449 struct partitionHeaderDesc
450 {
451 short_ad unallocSpaceTable;
452 short_ad unallocSpaceBitmap;
453 short_ad partitionIntegrityTable;
454 short_ad freedSpaceTable;
455 short_ad freedSpaceBitmap;
456 uint8_t reserved[88];
457 } __attribute__ ((packed));
458
459 /* File Identifier Descriptor (ECMA 167r3 4/14.4) */
460 struct fileIdentDesc
461 {
462 tag descTag;
463 uint16_t fileVersionNum;
464 uint8_t fileCharacteristics;
465 uint8_t lengthFileIdent;
466 long_ad icb;
467 uint16_t lengthOfImpUse;
468 uint8_t impUse[0];
469 uint8_t fileIdent[0];
470 uint8_t padding[0];
471 } __attribute__ ((packed));
472
473 /* File Characteristics (ECMA 167r3 4/14.4.3) */
474 #define FID_FILE_CHAR_HIDDEN 0x01
475 #define FID_FILE_CHAR_DIRECTORY 0x02
476 #define FID_FILE_CHAR_DELETED 0x04
477 #define FID_FILE_CHAR_PARENT 0x08
478 #define FID_FILE_CHAR_METADATA 0x10
479
480 /* Allocation Ext Descriptor (ECMA 167r3 4/14.5) */
481 struct allocExtDesc
482 {
483 tag descTag;
484 uint32_t previousAllocExtLocation;
485 uint32_t lengthAllocDescs;
486 } __attribute__ ((packed));
487
488 /* ICB Tag (ECMA 167r3 4/14.6) */
489 typedef struct
490 {
491 uint32_t priorRecordedNumDirectEntries;
492 uint16_t strategyType;
493 uint16_t strategyParameter;
494 uint16_t numEntries;
495 uint8_t reserved;
496 uint8_t fileType;
497 lb_addr parentICBLocation;
498 uint16_t flags;
499 } __attribute__ ((packed)) icbtag;
500
501 /* Strategy Type (ECMA 167r3 4/14.6.2) */
502 #define ICBTAG_STRATEGY_TYPE_UNDEF 0x0000
503 #define ICBTAG_STRATEGY_TYPE_1 0x0001
504 #define ICBTAG_STRATEGY_TYPE_2 0x0002
505 #define ICBTAG_STRATEGY_TYPE_3 0x0003
506 #define ICBTAG_STRATEGY_TYPE_4 0x0004
507
508 /* File Type (ECMA 167r3 4/14.6.6) */
509 #define ICBTAG_FILE_TYPE_UNDEF 0x00
510 #define ICBTAG_FILE_TYPE_USE 0x01
511 #define ICBTAG_FILE_TYPE_PIE 0x02
512 #define ICBTAG_FILE_TYPE_IE 0x03
513 #define ICBTAG_FILE_TYPE_DIRECTORY 0x04
514 #define ICBTAG_FILE_TYPE_REGULAR 0x05
515 #define ICBTAG_FILE_TYPE_BLOCK 0x06
516 #define ICBTAG_FILE_TYPE_CHAR 0x07
517 #define ICBTAG_FILE_TYPE_EA 0x08
518 #define ICBTAG_FILE_TYPE_FIFO 0x09
519 #define ICBTAG_FILE_TYPE_SOCKET 0x0A
520 #define ICBTAG_FILE_TYPE_TE 0x0B
521 #define ICBTAG_FILE_TYPE_SYMLINK 0x0C
522 #define ICBTAG_FILE_TYPE_STREAMDIR 0x0D
523
524 /* Flags (ECMA 167r3 4/14.6.8) */
525 #define ICBTAG_FLAG_AD_MASK 0x0007
526 #define ICBTAG_FLAG_AD_SHORT 0x0000
527 #define ICBTAG_FLAG_AD_LONG 0x0001
528 #define ICBTAG_FLAG_AD_EXTENDED 0x0002
529 #define ICBTAG_FLAG_AD_IN_ICB 0x0003
530 #define ICBTAG_FLAG_SORTED 0x0008
531 #define ICBTAG_FLAG_NONRELOCATABLE 0x0010
532 #define ICBTAG_FLAG_ARCHIVE 0x0020
533 #define ICBTAG_FLAG_SETUID 0x0040
534 #define ICBTAG_FLAG_SETGID 0x0080
535 #define ICBTAG_FLAG_STICKY 0x0100
536 #define ICBTAG_FLAG_CONTIGUOUS 0x0200
537 #define ICBTAG_FLAG_SYSTEM 0x0400
538 #define ICBTAG_FLAG_TRANSFORMED 0x0800
539 #define ICBTAG_FLAG_MULTIVERSIONS 0x1000
540 #define ICBTAG_FLAG_STREAM 0x2000
541
542 /* Indirect Entry (ECMA 167r3 4/14.7) */
543 struct indirectEntry
544 {
545 tag descTag;
546 icbtag icbTag;
547 long_ad indirectICB;
548 } __attribute__ ((packed));
549
550 /* Terminal Entry (ECMA 167r3 4/14.8) */
551 struct terminalEntry
552 {
553 tag descTag;
554 icbtag icbTag;
555 } __attribute__ ((packed));
556
557 /* File Entry (ECMA 167r3 4/14.9) */
558 struct fileEntry
559 {
560 tag descTag;
561 icbtag icbTag;
562 uint32_t uid;
563 uint32_t gid;
564 uint32_t permissions;
565 uint16_t fileLinkCount;
566 uint8_t recordFormat;
567 uint8_t recordDisplayAttr;
568 uint32_t recordLength;
569 uint64_t informationLength;
570 uint64_t logicalBlocksRecorded;
571 timestamp accessTime;
572 timestamp modificationTime;
573 timestamp attrTime;
574 uint32_t checkpoint;
575 long_ad extendedAttrICB;
576 regid impIdent;
577 uint64_t uniqueID;
578 uint32_t lengthExtendedAttr;
579 uint32_t lengthAllocDescs;
580 uint8_t extendedAttr[0];
581 uint8_t allocDescs[0];
582 } __attribute__ ((packed));
583
584 /* Permissions (ECMA 167r3 4/14.9.5) */
585 #define FE_PERM_O_EXEC 0x00000001U
586 #define FE_PERM_O_WRITE 0x00000002U
587 #define FE_PERM_O_READ 0x00000004U
588 #define FE_PERM_O_CHATTR 0x00000008U
589 #define FE_PERM_O_DELETE 0x00000010U
590 #define FE_PERM_G_EXEC 0x00000020U
591 #define FE_PERM_G_WRITE 0x00000040U
592 #define FE_PERM_G_READ 0x00000080U
593 #define FE_PERM_G_CHATTR 0x00000100U
594 #define FE_PERM_G_DELETE 0x00000200U
595 #define FE_PERM_U_EXEC 0x00000400U
596 #define FE_PERM_U_WRITE 0x00000800U
597 #define FE_PERM_U_READ 0x00001000U
598 #define FE_PERM_U_CHATTR 0x00002000U
599 #define FE_PERM_U_DELETE 0x00004000U
600
601 /* Record Format (ECMA 167r3 4/14.9.7) */
602 #define FE_RECORD_FMT_UNDEF 0x00
603 #define FE_RECORD_FMT_FIXED_PAD 0x01
604 #define FE_RECORD_FMT_FIXED 0x02
605 #define FE_RECORD_FMT_VARIABLE8 0x03
606 #define FE_RECORD_FMT_VARIABLE16 0x04
607 #define FE_RECORD_FMT_VARIABLE16_MSB 0x05
608 #define FE_RECORD_FMT_VARIABLE32 0x06
609 #define FE_RECORD_FMT_PRINT 0x07
610 #define FE_RECORD_FMT_LF 0x08
611 #define FE_RECORD_FMT_CR 0x09
612 #define FE_RECORD_FMT_CRLF 0x0A
613 #define FE_RECORD_FMT_LFCR 0x0B
614
615 /* Record Display Attributes (ECMA 167r3 4/14.9.8) */
616 #define FE_RECORD_DISPLAY_ATTR_UNDEF 0x00
617 #define FE_RECORD_DISPLAY_ATTR_1 0x01
618 #define FE_RECORD_DISPLAY_ATTR_2 0x02
619 #define FE_RECORD_DISPLAY_ATTR_3 0x03
620
621 /* Extended Attribute Header Descriptor (ECMA 167r3 4/14.10.1) */
622 struct extendedAttrHeaderDesc
623 {
624 tag descTag;
625 uint32_t impAttrLocation;
626 uint32_t appAttrLocation;
627 } __attribute__ ((packed));
628
629 /* Generic Format (ECMA 167r3 4/14.10.2) */
630 struct genericFormat
631 {
632 uint32_t attrType;
633 uint8_t attrSubtype;
634 uint8_t reserved[3];
635 uint32_t attrLength;
636 uint8_t attrData[0];
637 } __attribute__ ((packed));
638
639 /* Character Set Information (ECMA 167r3 4/14.10.3) */
640 struct charSetInfo
641 {
642 uint32_t attrType;
643 uint8_t attrSubtype;
644 uint8_t reserved[3];
645 uint32_t attrLength;
646 uint32_t escapeSeqLength;
647 uint8_t charSetType;
648 uint8_t escapeSeq[0];
649 } __attribute__ ((packed));
650
651 /* Alternate Permissions (ECMA 167r3 4/14.10.4) */
652 struct altPerms
653 {
654 uint32_t attrType;
655 uint8_t attrSubtype;
656 uint8_t reserved[3];
657 uint32_t attrLength;
658 uint16_t ownerIdent;
659 uint16_t groupIdent;
660 uint16_t permission;
661 } __attribute__ ((packed));
662
663 /* File Times Extended Attribute (ECMA 167r3 4/14.10.5) */
664 struct fileTimesExtAttr
665 {
666 uint32_t attrType;
667 uint8_t attrSubtype;
668 uint8_t reserved[3];
669 uint32_t attrLength;
670 uint32_t dataLength;
671 uint32_t fileTimeExistence;
672 uint8_t fileTimes;
673 } __attribute__ ((packed));
674
675 /* FileTimeExistence (ECMA 167r3 4/14.10.5.6) */
676 #define FTE_CREATION 0x00000001
677 #define FTE_DELETION 0x00000004
678 #define FTE_EFFECTIVE 0x00000008
679 #define FTE_BACKUP 0x00000002
680
681 /* Information Times Extended Attribute (ECMA 167r3 4/14.10.6) */
682 struct infoTimesExtAttr
683 {
684 uint32_t attrType;
685 uint8_t attrSubtype;
686 uint8_t reserved[3];
687 uint32_t attrLength;
688 uint32_t dataLength;
689 uint32_t infoTimeExistence;
690 uint8_t infoTimes[0];
691 } __attribute__ ((packed));
692
693 /* Device Specification (ECMA 167r3 4/14.10.7) */
694 struct deviceSpec
695 {
696 uint32_t attrType;
697 uint8_t attrSubtype;
698 uint8_t reserved[3];
699 uint32_t attrLength;
700 uint32_t impUseLength;
701 uint32_t majorDeviceIdent;
702 uint32_t minorDeviceIdent;
703 uint8_t impUse[0];
704 } __attribute__ ((packed));
705
706 /* Implementation Use Extended Attr (ECMA 167r3 4/14.10.8) */
707 struct impUseExtAttr
708 {
709 uint32_t attrType;
710 uint8_t attrSubtype;
711 uint8_t reserved[3];
712 uint32_t attrLength;
713 uint32_t impUseLength;
714 regid impIdent;
715 uint8_t impUse[0];
716 } __attribute__ ((packed));
717
718 /* Application Use Extended Attribute (ECMA 167r3 4/14.10.9) */
719 struct appUseExtAttr
720 {
721 uint32_t attrType;
722 uint8_t attrSubtype;
723 uint8_t reserved[3];
724 uint32_t attrLength;
725 uint32_t appUseLength;
726 regid appIdent;
727 uint8_t appUse[0];
728 } __attribute__ ((packed));
729
730 #define EXTATTR_CHAR_SET 1
731 #define EXTATTR_ALT_PERMS 3
732 #define EXTATTR_FILE_TIMES 5
733 #define EXTATTR_INFO_TIMES 6
734 #define EXTATTR_DEV_SPEC 12
735 #define EXTATTR_IMP_USE 2048
736 #define EXTATTR_APP_USE 65536
737
738
739 /* Unallocated Space Entry (ECMA 167r3 4/14.11) */
740 struct unallocSpaceEntry
741 {
742 tag descTag;
743 icbtag icbTag;
744 uint32_t lengthAllocDescs;
745 uint8_t allocDescs[0];
746 } __attribute__ ((packed));
747
748 /* Space Bitmap Descriptor (ECMA 167r3 4/14.12) */
749 struct spaceBitmapDesc
750 {
751 tag descTag;
752 uint32_t numOfBits;
753 uint32_t numOfBytes;
754 uint8_t bitmap[0];
755 } __attribute__ ((packed));
756
757 /* Partition Integrity Entry (ECMA 167r3 4/14.13) */
758 struct partitionIntegrityEntry
759 {
760 tag descTag;
761 icbtag icbTag;
762 timestamp recordingDateAndTime;
763 uint8_t integrityType;
764 uint8_t reserved[175];
765 regid impIdent;
766 uint8_t impUse[256];
767 } __attribute__ ((packed));
768
769 /* Short Allocation Descriptor (ECMA 167r3 4/14.14.1) */
770
771 /* Extent Length (ECMA 167r3 4/14.14.1.1) */
772 #define EXT_RECORDED_ALLOCATED 0x00000000
773 #define EXT_NOT_RECORDED_ALLOCATED 0x40000000
774 #define EXT_NOT_RECORDED_NOT_ALLOCATED 0x80000000
775 #define EXT_NEXT_EXTENT_ALLOCDECS 0xC0000000
776
777 /* Long Allocation Descriptor (ECMA 167r3 4/14.14.2) */
778
779 /* Extended Allocation Descriptor (ECMA 167r3 4/14.14.3) */
780
781 /* Logical Volume Header Descriptor (ECMA 167r3 4/14.15) */
782 struct logicalVolHeaderDesc
783 {
784 uint64_t uniqueID;
785 uint8_t reserved[24];
786 } __attribute__ ((packed));
787
788 /* Path Component (ECMA 167r3 4/14.16.1) */
789 struct pathComponent
790 {
791 uint8_t componentType;
792 uint8_t lengthComponentIdent;
793 uint16_t componentFileVersionNum;
794 dstring componentIdent[0];
795 } __attribute__ ((packed));
796
797 /* File Entry (ECMA 167r3 4/14.17) */
798 struct extendedFileEntry
799 {
800 tag descTag;
801 icbtag icbTag;
802 uint32_t uid;
803 uint32_t gid;
804 uint32_t permissions;
805 uint16_t fileLinkCount;
806 uint8_t recordFormat;
807 uint8_t recordDisplayAttr;
808 uint32_t recordLength;
809 uint64_t informationLength;
810 uint64_t objectSize;
811 uint64_t logicalBlocksRecorded;
812 timestamp accessTime;
813 timestamp modificationTime;
814 timestamp createTime;
815 timestamp attrTime;
816 uint32_t checkpoint;
817 uint32_t reserved;
818 long_ad extendedAttrICB;
819 long_ad streamDirectoryICB;
820 regid impIdent;
821 uint64_t uniqueID;
822 uint32_t lengthExtendedAttr;
823 uint32_t lengthAllocDescs;
824 uint8_t extendedAttr[0];
825 uint8_t allocDescs[0];
826 } __attribute__ ((packed));
827
828 #endif /* _ECMA_167_H */
impUseExtAttr::impIdent
regid impIdent
Definition: ecma_167.h:714
extendedFileEntry::recordLength
uint32_t recordLength
Definition: ecma_167.h:808
primaryVolDesc::predecessorVolDescSeqLocation
uint32_t predecessorVolDescSeqLocation
Definition: ecma_167.h:224
extendedFileEntry::fileLinkCount
uint16_t fileLinkCount
Definition: ecma_167.h:805
fileSetDesc::rootDirectoryICB
long_ad rootDirectoryICB
Definition: ecma_167.h:441
extendedFileEntry::icbTag
icbtag icbTag
Definition: ecma_167.h:801
primaryVolDesc::volAbstract
extent_ad volAbstract
Definition: ecma_167.h:218
beginningExtendedAreaDesc::structData
uint8_t structData[2041]
Definition: ecma_167.h:127
fileEntry::recordFormat
uint8_t recordFormat
Definition: ecma_167.h:566
partitionIntegrityEntry::reserved
uint8_t reserved[175]
Definition: ecma_167.h:764
appUseExtAttr
Definition: ecma_167.h:719
infoTimesExtAttr::reserved
uint8_t reserved[3]
Definition: ecma_167.h:686
fileIdentDesc::impUse
uint8_t impUse[0]
Definition: ecma_167.h:468
fileEntry::lengthExtendedAttr
uint32_t lengthExtendedAttr
Definition: ecma_167.h:578
extendedFileEntry::attrTime
timestamp attrTime
Definition: ecma_167.h:815
fileEntry::extendedAttrICB
long_ad extendedAttrICB
Definition: ecma_167.h:575
allocExtDesc::previousAllocExtLocation
uint32_t previousAllocExtLocation
Definition: ecma_167.h:484
pathComponent::componentFileVersionNum
uint16_t componentFileVersionNum
Definition: ecma_167.h:793
partitionDesc::partitionContentsUse
uint8_t partitionContentsUse[128]
Definition: ecma_167.h:267
fileEntry::uid
uint32_t uid
Definition: ecma_167.h:562
fileSetDesc::fileSetCharSet
charspec fileSetCharSet
Definition: ecma_167.h:437
logicalVolDesc::integritySeqExt
extent_ad integritySeqExt
Definition: ecma_167.h:309
primaryVolDesc::recordingDateAndTime
timestamp recordingDateAndTime
Definition: ecma_167.h:221
extendedFileEntry
Definition: ecma_167.h:798
__attribute__::extLength
uint32_t extLength
Definition: ecma_167.h:164
partitionDesc::partitionFlags
uint16_t partitionFlags
Definition: ecma_167.h:264
deviceSpec::impUse
uint8_t impUse[0]
Definition: ecma_167.h:703
genericFormat::reserved
uint8_t reserved[3]
Definition: ecma_167.h:634
__attribute__::parentICBLocation
lb_addr parentICBLocation
Definition: ecma_167.h:497
extendedFileEntry::accessTime
timestamp accessTime
Definition: ecma_167.h:812
bootDesc::loadAddress
uint64_t loadAddress
Definition: ecma_167.h:150
extendedFileEntry::informationLength
uint64_t informationLength
Definition: ecma_167.h:809
fileEntry::icbTag
icbtag icbTag
Definition: ecma_167.h:561
extendedFileEntry::extendedAttrICB
long_ad extendedAttrICB
Definition: ecma_167.h:818
fileTimesExtAttr::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:667
pathComponent
Definition: ecma_167.h:789
genericPartitionMap2
Definition: ecma_167.h:336
terminatingExtendedAreaDesc::structVersion
uint8_t structVersion
Definition: ecma_167.h:135
NSRDesc
Definition: ecma_167.h:193
logicalVolDesc::logicalBlockSize
uint32_t logicalBlockSize
Definition: ecma_167.h:302
primaryVolDesc::maxCharSetList
uint32_t maxCharSetList
Definition: ecma_167.h:214
anchorVolDescPtr::descTag
tag descTag
Definition: ecma_167.h:235
logicalVolDesc::volDescSeqNum
uint32_t volDescSeqNum
Definition: ecma_167.h:299
logicalVolIntegrityDesc::logicalVolContentsUse
uint8_t logicalVolContentsUse[32]
Definition: ecma_167.h:366
terminatingExtendedAreaDesc::stdIdent
uint8_t stdIdent[VSD_STD_ID_LEN]
Definition: ecma_167.h:134
indirectEntry::icbTag
icbtag icbTag
Definition: ecma_167.h:546
impUseExtAttr::impUseLength
uint32_t impUseLength
Definition: ecma_167.h:713
logicalVolDesc::descCharSet
charspec descCharSet
Definition: ecma_167.h:300
terminatingExtendedAreaDesc::structType
uint8_t structType
Definition: ecma_167.h:133
__attribute__::tagLocation
uint32_t tagLocation
Definition: ecma_167.h:178
NSRDesc::structVersion
uint8_t structVersion
Definition: ecma_167.h:197
partitionDesc::volDescSeqNum
uint32_t volDescSeqNum
Definition: ecma_167.h:263
unallocSpaceDesc::descTag
tag descTag
Definition: ecma_167.h:346
fileSetDesc::fileSetIdent
dstring fileSetIdent[32]
Definition: ecma_167.h:438
altPerms::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:655
partitionDesc::partitionNumber
uint16_t partitionNumber
Definition: ecma_167.h:265
charSetInfo::charSetType
uint8_t charSetType
Definition: ecma_167.h:647
__attribute__::logicalBlockNum
uint32_t logicalBlockNum
Definition: ecma_167.h:381
genericPartitionMap1::partitionMapType
uint8_t partitionMapType
Definition: ecma_167.h:329
fileSetDesc::charSetList
uint32_t charSetList
Definition: ecma_167.h:431
fileEntry::logicalBlocksRecorded
uint64_t logicalBlocksRecorded
Definition: ecma_167.h:570
VSD_STD_ID_LEN
#define VSD_STD_ID_LEN
Definition: ecma_167.h:100
altPerms
Definition: ecma_167.h:652
altPerms::permission
uint16_t permission
Definition: ecma_167.h:660
terminalEntry::descTag
tag descTag
Definition: ecma_167.h:553
impUseExtAttr::attrType
uint32_t attrType
Definition: ecma_167.h:709
anchorVolDescPtr
Definition: ecma_167.h:233
partitionDesc::partitionStartingLocation
uint32_t partitionStartingLocation
Definition: ecma_167.h:269
unallocSpaceDesc::numAllocDescs
uint32_t numAllocDescs
Definition: ecma_167.h:348
charSetInfo::reserved
uint8_t reserved[3]
Definition: ecma_167.h:644
fileEntry::recordLength
uint32_t recordLength
Definition: ecma_167.h:568
primaryVolDesc::impIdent
regid impIdent
Definition: ecma_167.h:222
partitionIntegrityEntry::impUse
uint8_t impUse[256]
Definition: ecma_167.h:766
bootDesc::reserved1
uint8_t reserved1
Definition: ecma_167.h:145
infoTimesExtAttr::attrLength
uint32_t attrLength
Definition: ecma_167.h:687
logicalVolDesc::mapTableLength
uint32_t mapTableLength
Definition: ecma_167.h:305
bootDesc::bootExtLength
uint32_t bootExtLength
Definition: ecma_167.h:149
fileEntry::permissions
uint32_t permissions
Definition: ecma_167.h:564
extendedAttrHeaderDesc::impAttrLocation
uint32_t impAttrLocation
Definition: ecma_167.h:625
fileTimesExtAttr::fileTimeExistence
uint32_t fileTimeExistence
Definition: ecma_167.h:671
__attribute__::descCRC
uint16_t descCRC
Definition: ecma_167.h:176
partitionIntegrityEntry::icbTag
icbtag icbTag
Definition: ecma_167.h:761
__attribute__::tagIdent
uint16_t tagIdent
Definition: ecma_167.h:171
genericPartitionMap2::partitionMapType
uint8_t partitionMapType
Definition: ecma_167.h:338
__attribute__
typedef __attribute__
bootDesc::bootExtLocation
uint32_t bootExtLocation
Definition: ecma_167.h:148
primaryVolDesc::volDescSeqNum
uint32_t volDescSeqNum
Definition: ecma_167.h:206
bootDesc::structVersion
uint8_t structVersion
Definition: ecma_167.h:144
fileTimesExtAttr::attrLength
uint32_t attrLength
Definition: ecma_167.h:669
altPerms::reserved
uint8_t reserved[3]
Definition: ecma_167.h:656
dstring
uint8_t dstring
Definition: ecma_167.h:63
spaceBitmapDesc::descTag
tag descTag
Definition: ecma_167.h:751
genericFormat::attrLength
uint32_t attrLength
Definition: ecma_167.h:635
logicalVolDesc::descTag
tag descTag
Definition: ecma_167.h:298
terminatingDesc::reserved
uint8_t reserved[496]
Definition: ecma_167.h:356
unallocSpaceEntry
Definition: ecma_167.h:740
logicalVolHeaderDesc::reserved
uint8_t reserved[24]
Definition: ecma_167.h:785
volDescPtr::descTag
tag descTag
Definition: ecma_167.h:244
fileTimesExtAttr::dataLength
uint32_t dataLength
Definition: ecma_167.h:670
altPerms::groupIdent
uint16_t groupIdent
Definition: ecma_167.h:659
volDescPtr::reserved
uint8_t reserved[484]
Definition: ecma_167.h:247
partitionDesc::descTag
tag descTag
Definition: ecma_167.h:262
logicalVolIntegrityDesc::freeSpaceTable
uint32_t freeSpaceTable[0]
Definition: ecma_167.h:369
extendedFileEntry::createTime
timestamp createTime
Definition: ecma_167.h:814
appUseExtAttr::appUse
uint8_t appUse[0]
Definition: ecma_167.h:727
NSRDesc::reserved
uint8_t reserved
Definition: ecma_167.h:198
deviceSpec::majorDeviceIdent
uint32_t majorDeviceIdent
Definition: ecma_167.h:701
charSetInfo::attrType
uint32_t attrType
Definition: ecma_167.h:642
fileSetDesc::logicalVolIdent
dstring logicalVolIdent[128]
Definition: ecma_167.h:436
__attribute__::tagChecksum
uint8_t tagChecksum
Definition: ecma_167.h:173
deviceSpec::reserved
uint8_t reserved[3]
Definition: ecma_167.h:698
extendedFileEntry::lengthAllocDescs
uint32_t lengthAllocDescs
Definition: ecma_167.h:823
fileEntry::fileLinkCount
uint16_t fileLinkCount
Definition: ecma_167.h:565
appUseExtAttr::attrType
uint32_t attrType
Definition: ecma_167.h:721
primaryVolDesc::descTag
tag descTag
Definition: ecma_167.h:205
deviceSpec::minorDeviceIdent
uint32_t minorDeviceIdent
Definition: ecma_167.h:702
fileEntry::accessTime
timestamp accessTime
Definition: ecma_167.h:571
partitionDesc::impIdent
regid impIdent
Definition: ecma_167.h:271
primaryVolDesc::explanatoryCharSet
charspec explanatoryCharSet
Definition: ecma_167.h:217
primaryVolDesc::maxVolSeqNum
uint16_t maxVolSeqNum
Definition: ecma_167.h:210
primaryVolDesc::impUse
uint8_t impUse[64]
Definition: ecma_167.h:223
primaryVolDesc::reserved
uint8_t reserved[22]
Definition: ecma_167.h:226
__attribute__::flags
uint16_t flags
Definition: ecma_167.h:498
deviceSpec::attrType
uint32_t attrType
Definition: ecma_167.h:696
infoTimesExtAttr::infoTimes
uint8_t infoTimes[0]
Definition: ecma_167.h:690
terminalEntry
Definition: ecma_167.h:551
logicalVolDesc
Definition: ecma_167.h:296
partitionHeaderDesc
Definition: ecma_167.h:449
__attribute__::extPosition
uint32_t extPosition
Definition: ecma_167.h:389
__attribute__::extLocation
uint32_t extLocation
Definition: ecma_167.h:165
altPerms::ownerIdent
uint16_t ownerIdent
Definition: ecma_167.h:658
bootDesc::startAddress
uint64_t startAddress
Definition: ecma_167.h:151
fileSetDesc::descTag
tag descTag
Definition: ecma_167.h:427
primaryVolDesc
Definition: ecma_167.h:203
bootDesc::descCreationDateAndTime
timestamp descCreationDateAndTime
Definition: ecma_167.h:152
deviceSpec::impUseLength
uint32_t impUseLength
Definition: ecma_167.h:700
indirectEntry::indirectICB
long_ad indirectICB
Definition: ecma_167.h:547
bootDesc
Definition: ecma_167.h:140
primaryVolDesc::volSetIdent
dstring volSetIdent[128]
Definition: ecma_167.h:215
partitionIntegrityEntry::descTag
tag descTag
Definition: ecma_167.h:760
unallocSpaceDesc::allocDescs
extent_ad allocDescs[0]
Definition: ecma_167.h:349
partitionHeaderDesc::freedSpaceBitmap
short_ad freedSpaceBitmap
Definition: ecma_167.h:455
bootDesc::flags
uint16_t flags
Definition: ecma_167.h:153
appUseExtAttr::attrLength
uint32_t attrLength
Definition: ecma_167.h:724
primaryVolDesc::volIdent
dstring volIdent[32]
Definition: ecma_167.h:208
fileIdentDesc::fileVersionNum
uint16_t fileVersionNum
Definition: ecma_167.h:463
volStructDesc::stdIdent
uint8_t stdIdent[VSD_STD_ID_LEN]
Definition: ecma_167.h:104
deviceSpec
Definition: ecma_167.h:694
partitionDesc::reserved
uint8_t reserved[156]
Definition: ecma_167.h:273
appUseExtAttr::appUseLength
uint32_t appUseLength
Definition: ecma_167.h:725
extendedFileEntry::objectSize
uint64_t objectSize
Definition: ecma_167.h:810
fileSetDesc::interchangeLvl
uint16_t interchangeLvl
Definition: ecma_167.h:429
logicalVolIntegrityDesc::nextIntegrityExt
extent_ad nextIntegrityExt
Definition: ecma_167.h:365
logicalVolIntegrityDesc::impUse
uint8_t impUse[0]
Definition: ecma_167.h:371
fileSetDesc::fileSetNum
uint32_t fileSetNum
Definition: ecma_167.h:433
fileIdentDesc::fileCharacteristics
uint8_t fileCharacteristics
Definition: ecma_167.h:464
logicalVolHeaderDesc::uniqueID
uint64_t uniqueID
Definition: ecma_167.h:784
impUseExtAttr::reserved
uint8_t reserved[3]
Definition: ecma_167.h:711
volDescPtr
Definition: ecma_167.h:242
beginningExtendedAreaDesc
Definition: ecma_167.h:122
volDescPtr::nextVolDescSeqExt
extent_ad nextVolDescSeqExt
Definition: ecma_167.h:246
partitionIntegrityEntry::impIdent
regid impIdent
Definition: ecma_167.h:765
fileIdentDesc::lengthOfImpUse
uint16_t lengthOfImpUse
Definition: ecma_167.h:467
genericPartitionMap2::partitionMapLength
uint8_t partitionMapLength
Definition: ecma_167.h:339
partitionIntegrityEntry::integrityType
uint8_t integrityType
Definition: ecma_167.h:763
allocExtDesc::lengthAllocDescs
uint32_t lengthAllocDescs
Definition: ecma_167.h:485
impUseVolDesc::impIdent
regid impIdent
Definition: ecma_167.h:255
primaryVolDesc::maxInterchangeLvl
uint16_t maxInterchangeLvl
Definition: ecma_167.h:212
fileEntry
Definition: ecma_167.h:558
bootDesc::reserved2
uint8_t reserved2[32]
Definition: ecma_167.h:154
deviceSpec::attrLength
uint32_t attrLength
Definition: ecma_167.h:699
primaryVolDesc::primaryVolDescNum
uint32_t primaryVolDescNum
Definition: ecma_167.h:207
__attribute__::tagSerialNum
uint16_t tagSerialNum
Definition: ecma_167.h:175
beginningExtendedAreaDesc::structType
uint8_t structType
Definition: ecma_167.h:124
fileSetDesc
Definition: ecma_167.h:425
genericFormat::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:633
primaryVolDesc::appIdent
regid appIdent
Definition: ecma_167.h:220
reserved
uint8_t reserved
Definition: ecma_167.h:67
extendedFileEntry::logicalBlocksRecorded
uint64_t logicalBlocksRecorded
Definition: ecma_167.h:811
logicalVolDesc::domainIdent
regid domainIdent
Definition: ecma_167.h:303
impUse
uint8_t impUse[64]
Definition: ecma_167.h:82
unallocSpaceEntry::allocDescs
uint8_t allocDescs[0]
Definition: ecma_167.h:745
fileEntry::informationLength
uint64_t informationLength
Definition: ecma_167.h:569
logicalVolIntegrityDesc::descTag
tag descTag
Definition: ecma_167.h:362
partitionHeaderDesc::unallocSpaceBitmap
short_ad unallocSpaceBitmap
Definition: ecma_167.h:452
fileTimesExtAttr::reserved
uint8_t reserved[3]
Definition: ecma_167.h:668
fileSetDesc::domainIdent
regid domainIdent
Definition: ecma_167.h:442
pathComponent::componentType
uint8_t componentType
Definition: ecma_167.h:791
primaryVolDesc::interchangeLvl
uint16_t interchangeLvl
Definition: ecma_167.h:211
logicalVolHeaderDesc
Definition: ecma_167.h:782
genericPartitionMap1::partitionNum
uint16_t partitionNum
Definition: ecma_167.h:332
genericPartitionMap1::partitionMapLength
uint8_t partitionMapLength
Definition: ecma_167.h:330
__attribute__::recordedLength
uint32_t recordedLength
Definition: ecma_167.h:404
__attribute__::fileType
uint8_t fileType
Definition: ecma_167.h:496
extendedFileEntry::allocDescs
uint8_t allocDescs[0]
Definition: ecma_167.h:825
__attribute__::partitionReferenceNum
uint16_t partitionReferenceNum
Definition: ecma_167.h:382
allocExtDesc::descTag
tag descTag
Definition: ecma_167.h:483
fileEntry::lengthAllocDescs
uint32_t lengthAllocDescs
Definition: ecma_167.h:579
extendedFileEntry::uid
uint32_t uid
Definition: ecma_167.h:802
impUseExtAttr
Definition: ecma_167.h:707
genericPartitionMap2::partitionIdent
uint8_t partitionIdent[62]
Definition: ecma_167.h:340
partitionDesc::partitionLength
uint32_t partitionLength
Definition: ecma_167.h:270
bootDesc::bootIdent
regid bootIdent
Definition: ecma_167.h:147
partitionDesc::partitionContents
regid partitionContents
Definition: ecma_167.h:266
bootDesc::structType
uint8_t structType
Definition: ecma_167.h:142
deviceSpec::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:697
fileTimesExtAttr::fileTimes
uint8_t fileTimes
Definition: ecma_167.h:672
logicalVolDesc::logicalVolIdent
dstring logicalVolIdent[128]
Definition: ecma_167.h:301
beginningExtendedAreaDesc::stdIdent
uint8_t stdIdent[VSD_STD_ID_LEN]
Definition: ecma_167.h:125
fileEntry::descTag
tag descTag
Definition: ecma_167.h:560
fileEntry::gid
uint32_t gid
Definition: ecma_167.h:563
logicalVolDesc::numPartitionMaps
uint32_t numPartitionMaps
Definition: ecma_167.h:306
__attribute__::reserved
uint8_t reserved
Definition: ecma_167.h:174
fileIdentDesc::lengthFileIdent
uint8_t lengthFileIdent
Definition: ecma_167.h:465
extendedFileEntry::recordFormat
uint8_t recordFormat
Definition: ecma_167.h:806
fileSetDesc::streamDirectoryICB
long_ad streamDirectoryICB
Definition: ecma_167.h:444
pathComponent::componentIdent
dstring componentIdent[0]
Definition: ecma_167.h:794
logicalVolDesc::impUse
uint8_t impUse[128]
Definition: ecma_167.h:308
__attribute__::strategyParameter
uint16_t strategyParameter
Definition: ecma_167.h:493
extendedFileEntry::modificationTime
timestamp modificationTime
Definition: ecma_167.h:813
fileSetDesc::abstractFileIdent
dstring abstractFileIdent[32]
Definition: ecma_167.h:440
primaryVolDesc::flags
uint16_t flags
Definition: ecma_167.h:225
logicalVolIntegrityDesc
Definition: ecma_167.h:360
terminatingDesc
Definition: ecma_167.h:353
infoTimesExtAttr::infoTimeExistence
uint32_t infoTimeExistence
Definition: ecma_167.h:689
fileSetDesc::maxCharSetList
uint32_t maxCharSetList
Definition: ecma_167.h:432
infoTimesExtAttr::attrType
uint32_t attrType
Definition: ecma_167.h:684
volDescPtr::volDescSeqNum
uint32_t volDescSeqNum
Definition: ecma_167.h:245
__attribute__::descVersion
uint16_t descVersion
Definition: ecma_167.h:172
extendedFileEntry::checkpoint
uint32_t checkpoint
Definition: ecma_167.h:816
partitionHeaderDesc::partitionIntegrityTable
short_ad partitionIntegrityTable
Definition: ecma_167.h:453
fileSetDesc::reserved
uint8_t reserved[32]
Definition: ecma_167.h:445
primaryVolDesc::volSeqNum
uint16_t volSeqNum
Definition: ecma_167.h:209
volStructDesc
Definition: ecma_167.h:101
extendedFileEntry::reserved
uint32_t reserved
Definition: ecma_167.h:817
genericPartitionMap1::volSeqNum
uint16_t volSeqNum
Definition: ecma_167.h:331
charSetInfo
Definition: ecma_167.h:640
fileEntry::modificationTime
timestamp modificationTime
Definition: ecma_167.h:572
indirectEntry::descTag
tag descTag
Definition: ecma_167.h:545
impUseVolDesc::descTag
tag descTag
Definition: ecma_167.h:253
fileEntry::uniqueID
uint64_t uniqueID
Definition: ecma_167.h:577
unallocSpaceEntry::descTag
tag descTag
Definition: ecma_167.h:742
fileSetDesc::maxInterchangeLvl
uint16_t maxInterchangeLvl
Definition: ecma_167.h:430
partitionHeaderDesc::freedSpaceTable
short_ad freedSpaceTable
Definition: ecma_167.h:454
volStructDesc::structVersion
uint8_t structVersion
Definition: ecma_167.h:105
partitionDesc::accessType
uint32_t accessType
Definition: ecma_167.h:268
bootDesc::archType
regid archType
Definition: ecma_167.h:146
primaryVolDesc::volCopyright
extent_ad volCopyright
Definition: ecma_167.h:219
infoTimesExtAttr::dataLength
uint32_t dataLength
Definition: ecma_167.h:688
infoTimesExtAttr
Definition: ecma_167.h:682
fileEntry::recordDisplayAttr
uint8_t recordDisplayAttr
Definition: ecma_167.h:567
logicalVolIntegrityDesc::recordingDateAndTime
timestamp recordingDateAndTime
Definition: ecma_167.h:363
fileEntry::checkpoint
uint32_t checkpoint
Definition: ecma_167.h:574
extendedFileEntry::permissions
uint32_t permissions
Definition: ecma_167.h:804
logicalVolIntegrityDesc::numOfPartitions
uint32_t numOfPartitions
Definition: ecma_167.h:367
anchorVolDescPtr::mainVolDescSeqExt
extent_ad mainVolDescSeqExt
Definition: ecma_167.h:236
genericPartitionMap::partitionMapping
uint8_t partitionMapping[0]
Definition: ecma_167.h:318
impUseVolDesc::volDescSeqNum
uint32_t volDescSeqNum
Definition: ecma_167.h:254
fileEntry::extendedAttr
uint8_t extendedAttr[0]
Definition: ecma_167.h:580
fileEntry::impIdent
regid impIdent
Definition: ecma_167.h:576
NSRDesc::structType
uint8_t structType
Definition: ecma_167.h:195
primaryVolDesc::charSetList
uint32_t charSetList
Definition: ecma_167.h:213
extendedAttrHeaderDesc
Definition: ecma_167.h:622
appUseExtAttr::appIdent
regid appIdent
Definition: ecma_167.h:726
fileSetDesc::logicalVolIdentCharSet
charspec logicalVolIdentCharSet
Definition: ecma_167.h:435
logicalVolDesc::partitionMaps
uint8_t partitionMaps[0]
Definition: ecma_167.h:310
extendedFileEntry::descTag
tag descTag
Definition: ecma_167.h:800
logicalVolIntegrityDesc::sizeTable
uint32_t sizeTable[0]
Definition: ecma_167.h:370
fileSetDesc::recordingDateAndTime
timestamp recordingDateAndTime
Definition: ecma_167.h:428
spaceBitmapDesc::numOfBytes
uint32_t numOfBytes
Definition: ecma_167.h:753
impUseExtAttr::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:710
fileIdentDesc::descTag
tag descTag
Definition: ecma_167.h:462
extendedFileEntry::impIdent
regid impIdent
Definition: ecma_167.h:820
__attribute__::priorRecordedNumDirectEntries
uint32_t priorRecordedNumDirectEntries
Definition: ecma_167.h:491
unallocSpaceEntry::icbTag
icbtag icbTag
Definition: ecma_167.h:743
fileTimesExtAttr
Definition: ecma_167.h:664
fileSetDesc::copyrightFileIdent
dstring copyrightFileIdent[32]
Definition: ecma_167.h:439
genericPartitionMap
Definition: ecma_167.h:314
terminatingExtendedAreaDesc
Definition: ecma_167.h:131
altPerms::attrLength
uint32_t attrLength
Definition: ecma_167.h:657
volStructDesc::structType
uint8_t structType
Definition: ecma_167.h:103
unallocSpaceDesc::volDescSeqNum
uint32_t volDescSeqNum
Definition: ecma_167.h:347
partitionHeaderDesc::reserved
uint8_t reserved[88]
Definition: ecma_167.h:456
appUseExtAttr::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:722
primaryVolDesc::descCharSet
charspec descCharSet
Definition: ecma_167.h:216
impUseVolDesc::impUse
uint8_t impUse[460]
Definition: ecma_167.h:256
logicalVolIntegrityDesc::integrityType
uint32_t integrityType
Definition: ecma_167.h:364
altPerms::attrType
uint32_t attrType
Definition: ecma_167.h:654
spaceBitmapDesc::numOfBits
uint32_t numOfBits
Definition: ecma_167.h:752
fileSetDesc::fileSetDescNum
uint32_t fileSetDescNum
Definition: ecma_167.h:434
__attribute__::descCRCLength
uint16_t descCRCLength
Definition: ecma_167.h:177
partitionDesc::impUse
uint8_t impUse[128]
Definition: ecma_167.h:272
extendedAttrHeaderDesc::appAttrLocation
uint32_t appAttrLocation
Definition: ecma_167.h:626
NSRDesc::structData
uint8_t structData[2040]
Definition: ecma_167.h:199
genericFormat::attrType
uint32_t attrType
Definition: ecma_167.h:632
charSetInfo::escapeSeqLength
uint32_t escapeSeqLength
Definition: ecma_167.h:646
volStructDesc::structData
uint8_t structData[2041]
Definition: ecma_167.h:106
charSetInfo::attrLength
uint32_t attrLength
Definition: ecma_167.h:645
extendedFileEntry::recordDisplayAttr
uint8_t recordDisplayAttr
Definition: ecma_167.h:807
unallocSpaceEntry::lengthAllocDescs
uint32_t lengthAllocDescs
Definition: ecma_167.h:744
logicalVolIntegrityDesc::lengthOfImpUse
uint32_t lengthOfImpUse
Definition: ecma_167.h:368
NSRDesc::stdIdent
uint8_t stdIdent[VSD_STD_ID_LEN]
Definition: ecma_167.h:196
pathComponent::lengthComponentIdent
uint8_t lengthComponentIdent
Definition: ecma_167.h:792
extendedFileEntry::gid
uint32_t gid
Definition: ecma_167.h:803
beginningExtendedAreaDesc::structVersion
uint8_t structVersion
Definition: ecma_167.h:126
__attribute__::numEntries
uint16_t numEntries
Definition: ecma_167.h:494
spaceBitmapDesc::bitmap
uint8_t bitmap[0]
Definition: ecma_167.h:754
genericFormat
Definition: ecma_167.h:630
bootDesc::stdIdent
uint8_t stdIdent[VSD_STD_ID_LEN]
Definition: ecma_167.h:143
extendedFileEntry::lengthExtendedAttr
uint32_t lengthExtendedAttr
Definition: ecma_167.h:822
allocExtDesc
Definition: ecma_167.h:481
unallocSpaceDesc
Definition: ecma_167.h:344
genericPartitionMap1
Definition: ecma_167.h:327
impUseExtAttr::impUse
uint8_t impUse[0]
Definition: ecma_167.h:715
anchorVolDescPtr::reserveVolDescSeqExt
extent_ad reserveVolDescSeqExt
Definition: ecma_167.h:237
charSetInfo::escapeSeq
uint8_t escapeSeq[0]
Definition: ecma_167.h:648
genericPartitionMap::partitionMapLength
uint8_t partitionMapLength
Definition: ecma_167.h:317
extendedFileEntry::uniqueID
uint64_t uniqueID
Definition: ecma_167.h:821
logicalVolDesc::logicalVolContentsUse
uint8_t logicalVolContentsUse[16]
Definition: ecma_167.h:304
terminatingExtendedAreaDesc::structData
uint8_t structData[2041]
Definition: ecma_167.h:136
fileEntry::attrTime
timestamp attrTime
Definition: ecma_167.h:573
fileIdentDesc::padding
uint8_t padding[0]
Definition: ecma_167.h:470
fileIdentDesc::fileIdent
uint8_t fileIdent[0]
Definition: ecma_167.h:469
fileIdentDesc
Definition: ecma_167.h:460
anchorVolDescPtr::reserved
uint8_t reserved[480]
Definition: ecma_167.h:238
partitionDesc
Definition: ecma_167.h:260
fileTimesExtAttr::attrType
uint32_t attrType
Definition: ecma_167.h:666
genericPartitionMap::partitionMapType
uint8_t partitionMapType
Definition: ecma_167.h:316
partitionHeaderDesc::unallocSpaceTable
short_ad unallocSpaceTable
Definition: ecma_167.h:451
partitionIntegrityEntry
Definition: ecma_167.h:758
charSetInfo::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:643
spaceBitmapDesc
Definition: ecma_167.h:749
fileEntry::allocDescs
uint8_t allocDescs[0]
Definition: ecma_167.h:581
extendedFileEntry::streamDirectoryICB
long_ad streamDirectoryICB
Definition: ecma_167.h:819
impUseVolDesc
Definition: ecma_167.h:251
logicalVolDesc::impIdent
regid impIdent
Definition: ecma_167.h:307
__attribute__::strategyType
uint16_t strategyType
Definition: ecma_167.h:492
fileSetDesc::nextExt
long_ad nextExt
Definition: ecma_167.h:443
partitionIntegrityEntry::recordingDateAndTime
timestamp recordingDateAndTime
Definition: ecma_167.h:762
infoTimesExtAttr::attrSubtype
uint8_t attrSubtype
Definition: ecma_167.h:685
fileIdentDesc::icb
long_ad icb
Definition: ecma_167.h:466
impUseExtAttr::attrLength
uint32_t attrLength
Definition: ecma_167.h:712
extendedFileEntry::extendedAttr
uint8_t extendedAttr[0]
Definition: ecma_167.h:824
__attribute__::informationLength
uint32_t informationLength
Definition: ecma_167.h:405
__attribute__::charSetType
uint8_t charSetType
Definition: ecma_167.h:48
__attribute__::flags
uint8_t flags
Definition: ecma_167.h:90
extendedAttrHeaderDesc::descTag
tag descTag
Definition: ecma_167.h:624
bootDesc::bootUse
uint8_t bootUse[1906]
Definition: ecma_167.h:155
genericFormat::attrData
uint8_t attrData[0]
Definition: ecma_167.h:636
terminatingDesc::descTag
tag descTag
Definition: ecma_167.h:355
indirectEntry
Definition: ecma_167.h:543
terminalEntry::icbTag
icbtag icbTag
Definition: ecma_167.h:554
appUseExtAttr::reserved
uint8_t reserved[3]
Definition: ecma_167.h:723