libcdio  0.93
ecma_167.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2005, 2006, 2008, 2012 Rocky Bernstein <rocky@cpan.org>
3  Copyright (c) 2001-2002 Ben Fennema <bfennema@falcon.csc.calpoly.edu>
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 /*
19  * Some portions taken from FreeBSD ecma167-udf.h which states:
20  * Copyright (c) 2001, 2002 Scott Long <scottl@freebsd.org>
21  * All rights reserved.
22  *
23  * Redistribution and use in source and binary forms, with or without
24  * modification, are permitted provided that the following conditions
25  * are met:
26  * 1. Redistributions of source code must retain the above copyright
27  * notice, this list of conditions and the following disclaimer.
28  * 2. Redistributions in binary form must reproduce the above copyright
29  * notice, this list of conditions and the following disclaimer in the
30  * documentation and/or other materials provided with the distribution.
31  *
32  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
33  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
35  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
36  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
40  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
41  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
42  * SUCH DAMAGE.
43  */
44 
52 #ifndef CDIO_ECMA_167_H
53 #define CDIO_ECMA_167_H 1
54 
55 #include <cdio/types.h>
56 
61 typedef enum {
69 
72 typedef enum {
73  TAGID_PRI_VOL = 0x0001,
74  TAGID_ANCHOR = 0x0002,
75  TAGID_VOL = 0x0003,
76  TAGID_IMP_VOL = 0x0004,
77  TAGID_PARTITION = 0x0005,
78  TAGID_LOGVOL = 0x0006,
80  TAGID_TERM = 0x0008,
82  TAGID_FSD = 0x0100,
83  TAGID_FID = 0x0101,
84  TAGID_AED = 0x0102,
85  TAGID_IE = 0x0103,
86  TAGID_TE = 0x0104,
87  TAGID_FILE_ENTRY = 0x0105,
88  TAGID_EAHD = 0x0106,
89  TAGID_USE = 0x0107,
90  TAGID_SBD = 0x0108,
91  TAGID_PIE = 0x0109,
92  TAGID_EFE = 0x010A,
93 } tag_id_t ;
94 
96 typedef enum {
108 
109 typedef uint8_t udf_Uint8_t;
110 typedef uint16_t udf_Uint16_t;
111 typedef uint32_t udf_Uint32_t;
112 typedef uint64_t udf_Uint64_t;
113 typedef char udf_dstring;
115 #define UDF_LENGTH_MASK 0x3fffffff
116 
118 
121 {
124 } GNUC_PACKED;
125 
127 
130 {
141 } GNUC_PACKED;
142 
144 
150 typedef enum {
157 
158 
159 #define TIMESTAMP_TYPE_MASK 0xF000
160 #define TIMESTAMP_TYPE_CUT 0x0000
161 #define TIMESTAMP_TYPE_LOCAL 0x1000
162 #define TIMESTAMP_TYPE_AGREEMENT 0x2000
163 #define TIMESTAMP_TIMEZONE_MASK 0x0FFF
164 
166 {
171 } GNUC_PACKED;
172 
174 
177 {
181 } GNUC_PACKED;
182 
183 typedef struct udf_regid_s udf_regid_t;
184 
186 #define ENTITYID_FLAGS_DIRTY 0x00
187 #define ENTITYID_FLAGS_PROTECTED 0x01
188 
191 {
196 } GNUC_PACKED;
197 
199 #define VSD_STD_ID_NSR02 "NSR02" /* (3/9.1) */
200 
203 /* The below const definitions are to faciltate debugging of the
204  values #define'd below. */
205 extern const char VSD_STD_ID_BEA01[sizeof("BEA01")-1];
206 extern const char VSD_STD_ID_BOOT2[sizeof("BOOT2")-1];
207 extern const char VSD_STD_ID_CD001[sizeof("CD001")-1];
208 extern const char VSD_STD_ID_CDW01[sizeof("CDW02")-1];
209 extern const char VSD_STD_ID_NSR03[sizeof("NSR03")-1];
210 extern const char VSD_STD_ID_TEA01[sizeof("TEA01")-1];
211 
212 #define VSD_STD_ID_BEA01 "BEA01"
213 #define VSD_STD_ID_BOOT2 "BOOT2"
214 #define VSD_STD_ID_CD001 "CD001"
215 #define VSD_STD_ID_CDW02 "CDW02"
216 #define VSD_STD_ID_NSR02 "NSR02"
218 #define VSD_STD_ID_NSR03 "NSR03"
219 #define VSD_STD_ID_TEA01 "TEA01"
222 struct beginning_extended_area_desc_s
223 {
224  udf_Uint8_t struct_type;
226  udf_Uint8_t struct_version;
227  udf_Uint8_t struct_data[2041];
229 
232 {
238 
240 struct boot_desc_s
241 {
257 
259 #define BOOT_FLAGS_ERASE 0x01
262 struct udf_extent_ad_s
263 {
267 
268 typedef struct udf_extent_ad_s udf_extent_ad_t;
271 struct udf_tag_s
272 {
282 
283 typedef struct udf_tag_s udf_tag_t;
286 struct NSR_desc_s
287 {
294 
296 struct udf_pvd_s
297 {
298  udf_tag_t tag;
321 
322 typedef struct udf_pvd_s udf_pvd_t;
325 #define PVD_FLAGS_VSID_COMMON 0x0001
329 {
330  udf_tag_t tag;
335 
339 struct vol_desc_ptr_s
340 {
341  udf_tag_t tag;
346 
348 struct imp_use_vol_desc_s
349 {
350  udf_tag_t tag;
355 
357 struct partition_desc_s
358 {
359  udf_tag_t tag;
372 
373 typedef struct partition_desc_s partition_desc_t;
376 #define PD_PARTITION_FLAGS_ALLOC 0x0001
379 #define PD_PARTITION_CONTENTS_NSR02 "+NSR02"
382 #define PD_PARTITION_CONTENTS_FDC01 "+FDC01"
383 #define PD_PARTITION_CONTENTS_CD001 "+CD001"
384 #define PD_PARTITION_CONTENTS_CDW02 "+CDW02"
385 #define PD_PARTITION_CONTENTS_NSR03 "+NSR03"
388 #define PD_ACCESS_TYPE_NONE 0x00000000
389 #define PD_ACCESS_TYPE_READ_ONLY 0x00000001
390 #define PD_ACCESS_TYPE_WRITE_ONCE 0x00000002
391 #define PD_ACCESS_TYPE_REWRITABLE 0x00000003
392 #define PD_ACCESS_TYPE_OVERWRITABLE 0x00000004
395 struct udf_lb_addr_s
396 {
400 
401 typedef struct udf_lb_addr_s udf_lb_addr_t;
404 struct udf_short_ad_s
405 {
409 
410 typedef struct udf_short_ad_s udf_short_ad_t;
413 struct udf_long_ad_s
414 {
419 
420 typedef struct udf_long_ad_s udf_long_ad_t;
423 struct logical_vol_desc_s
424 {
425  udf_tag_t tag;
431  union {
443 
448 {
453 
455 #define GP_PARTITION_MAP_TYPE_UNDEF 0x00
456 #define GP_PARTIITON_MAP_TYPE_1 0x01
457 #define GP_PARTITION_MAP_TYPE_2 0x02
461 {
467 
470 {
475 
478 {
479  udf_tag_t tag;
484 
486 struct terminating_desc_s
487 {
488  udf_tag_t tag;
491 
494 {
495  udf_tag_t tag;
501  union { /* Same MSVC workaround as with struct udf_fileid_desc_s */
503  struct {
507  struct {
509  udf_Uint32_t data[0];
510  } size_table;
511  struct {
513  udf_Uint32_t data[0];
514  } imp_use;
515  } u;
516 } GNUC_PACKED;
517 
519 #define LVID_INTEGRITY_TYPE_OPEN 0x00000000
520 #define LVID_INTEGRITY_TYPE_CLOSE 0x00000001
523 struct udf_ext_ad_s
524 {
530 
531 typedef struct udf_ext_ad_s udf_ext_ad_t;
538 struct udf_fsd_s
539 {
540  udf_tag_t tag;
560 
561 typedef struct udf_fsd_s udf_fsd_t;
565 {
573 
577 struct udf_fileid_desc_s
578 {
579  udf_tag_t tag;
584  /* MSVC workaround for multiple zero sized arrays
585  Unlike what is the case with GNU, and against logic, an union of zero
586  sized arrays in the Microsoft world is not zero bytes but one byte!
587  Thus, for sizeof() to be consistent across platforms, we must use an
588  ugly workaround that attaches the union to the last non-zero member. */
589  union {
591  struct {
595  struct {
597  udf_Uint8_t data[0];
598  } file_id;
599  struct {
601  udf_Uint8_t data[0];
602  } padding;
603  } u;
604 } GNUC_PACKED;
605 
606 typedef struct udf_fileid_desc_s udf_fileid_desc_t;
613 typedef enum {
614  UDF_FILE_HIDDEN = (1 << 0),
615  UDF_FILE_DIRECTORY = (1 << 1),
616  UDF_FILE_DELETED = (1 << 2),
617  UDF_FILE_PARENT = (1 << 3),
618  UDF_FILE_METADATA = (1 << 4)
620 
622 struct allocExtDesc
623 {
624  udf_tag_t tag;
628 
630 struct udf_icbtag_s
631 {
641 
642 typedef struct udf_icbtag_s udf_icbtag_t;
644 #define UDF_ICB_TAG_FLAGS_SETUID 0x40
645 #define UDF_ICB_TAG_FLAGS_SETGID 0x80
646 #define UDF_ICB_TAG_FLAGS_STICKY 0x100
650 #define ICBTAG_STRATEGY_TYPE_UNDEF 0x0000
651 #define ICBTAG_STRATEGY_TYPE_1 0x0001
652 #define ICBTAG_STRATEGY_TYPE_2 0x0002
653 #define ICBTAG_STRATEGY_TYPE_3 0x0003
654 #define ICBTAG_STRATEGY_TYPE_4 0x0004
664 typedef enum {
665  ICBTAG_FILE_TYPE_UNDEF = 0x00,
666  ICBTAG_FILE_TYPE_USE = 0x01,
667  ICBTAG_FILE_TYPE_PIE = 0x02,
682 typedef enum {
683  ICBTAG_FLAG_AD_MASK = 0x0007,
685  ICBTAG_FLAG_AD_SHORT = 0x0000,
691  ICBTAG_FLAG_AD_LONG = 0x0001,
697  ICBTAG_FLAG_AD_EXTENDED = 0x0002,
698  ICBTAG_FLAG_AD_IN_ICB = 0x0003,
704  ICBTAG_FLAG_ARCHIVE = 0x0020,
705  ICBTAG_FLAG_SETUID = 0x0040,
714 
717 {
718  udf_tag_t tag;
721 } GNUC_PACKED;
725 {
726  udf_tag_t tag;
729 
732 {
733  udf_tag_t tag;
736  udf_Uint32_t gid;
757  /* The following union allows file entry reuse without worrying
758  about overflows, by ensuring the struct is always the
759  maximum possible size allowed by the specs: one UDF block. */
760  union {
763  udf_Uint8_t pad_to_one_block[2048-176];
764  } u;
768 
769 #define UDF_FENTRY_SIZE 176
770 #define UDF_FENTRY_PERM_USER_MASK 0x07
771 #define UDF_FENTRY_PERM_GRP_MASK 0xE0
772 #define UDF_FENTRY_PERM_OWNER_MASK 0x1C00
775 #define FE_PERM_O_EXEC 0x00000001U
776 #define FE_PERM_O_WRITE 0x00000002U
777 #define FE_PERM_O_READ 0x00000004U
778 #define FE_PERM_O_CHATTR 0x00000008U
779 #define FE_PERM_O_DELETE 0x00000010U
780 #define FE_PERM_G_EXEC 0x00000020U
781 #define FE_PERM_G_WRITE 0x00000040U
782 #define FE_PERM_G_READ 0x00000080U
783 #define FE_PERM_G_CHATTR 0x00000100U
784 #define FE_PERM_G_DELETE 0x00000200U
785 #define FE_PERM_U_EXEC 0x00000400U
786 #define FE_PERM_U_WRITE 0x00000800U
787 #define FE_PERM_U_READ 0x00001000U
788 #define FE_PERM_U_CHATTR 0x00002000U
789 #define FE_PERM_U_DELETE 0x00004000U
792 #define FE_RECORD_FMT_UNDEF 0x00
793 #define FE_RECORD_FMT_FIXED_PAD 0x01
794 #define FE_RECORD_FMT_FIXED 0x02
795 #define FE_RECORD_FMT_VARIABLE8 0x03
796 #define FE_RECORD_FMT_VARIABLE16 0x04
797 #define FE_RECORD_FMT_VARIABLE16_MSB 0x05
798 #define FE_RECORD_FMT_VARIABLE32 0x06
799 #define FE_RECORD_FMT_PRINT 0x07
800 #define FE_RECORD_FMT_LF 0x08
801 #define FE_RECORD_FMT_CR 0x09
802 #define FE_RECORD_FMT_CRLF 0x0A
803 #define FE_RECORD_FMT_LFCR 0x0B
806 #define FE_RECORD_DISPLAY_ATTR_UNDEF 0x00
807 #define FE_RECORD_DISPLAY_ATTR_1 0x01
808 #define FE_RECORD_DISPLAY_ATTR_2 0x02
809 #define FE_RECORD_DISPLAY_ATTR_3 0x03
813 {
814  udf_tag_t tag;
817 } GNUC_PACKED;
821 {
831 {
841 /* Alternate Permissions (ECMA 167r3 4/14.10.4) */
843 {
855 {
866 #define FTE_CREATION 0x00000001
867 #define FTE_DELETION 0x00000004
868 #define FTE_EFFECTIVE 0x00000008
869 #define FTE_BACKUP 0x00000002
873 {
885 {
898 {
910 {
920 #define EXTATTR_CHAR_SET 1
921 #define EXTATTR_ALT_PERMS 3
922 #define EXTATTR_FILE_TIMES 5
923 #define EXTATTR_INFO_TIMES 6
924 #define EXTATTR_DEV_SPEC 12
925 #define EXTATTR_IMP_USE 2048
926 #define EXTATTR_APP_USE 65536
931 {
932  udf_tag_t tag;
940 {
941  udf_tag_t tag;
944  udf_Uint8_t bitmap[0];
949 {
950  udf_tag_t tag;
962 #define EXT_RECORDED_ALLOCATED 0x00000000
963 #define EXT_NOT_RECORDED_ALLOCATED 0x40000000
964 #define EXT_NOT_RECORDED_NOT_ALLOCATED 0x80000000
965 #define EXT_NEXT_EXTENT_ALLOCDECS 0xC0000000
973 {
975  udf_Uint8_t reserved[24];
977 
981 struct pathComponent
982 {
991 {
992  udf_tag_t tag;
995  udf_Uint32_t gid;
1021  union { /* MSVC workaround for multiple zero sized arrays */
1025  } u;
1029 
1035 extern tag_id_t debug_tagid;
1041 
1042 #endif /* CDIO_ECMA_167_H */
Definition: ecma_167.h:65
Definition: ecma_167.h:424
udf_timestamp_t recording_time
Definition: ecma_167.h:497
udf_Uint8_t attr_subtype
Definition: ecma_167.h:827
udf_dstring copyright_file_id[32]
Definition: ecma_167.h:553
udf_Uint32_t appUseLength
Definition: ecma_167.h:919
udf_Uint32_t reserved
Definition: ecma_167.h:1018
udf_charspec_t desc_charset
Definition: ecma_167.h:310
udf_Uint16_t i_serial
Definition: ecma_167.h:278
Definition: ecma_167.h:349
udf_Uint32_t checkpoint
Definition: ecma_167.h:755
Definition: ecma_167.h:816
udf_Uint16_t owner_id
Definition: ecma_167.h:852
udf_Uint8_t struct_type
Definition: ecma_167.h:243
udf_Uint8_t contents_use[128]
Definition: ecma_167.h:365
Definition: ecma_167.h:702
udf_Uint16_t componentFileVersionNum
Definition: ecma_167.h:989
udf_Uint32_t vol_desc_seq_num
Definition: ecma_167.h:300
Definition: ecma_167.h:232
Definition: ecma_167.h:80
Definition: ecma_167.h:913
ecma_167_timezone_enum_t
Definition: ecma_167.h:150
udf_Uint8_t charset_type
Definition: ecma_167.h:122
udf_Uint8_t struct_data[2041]
Definition: ecma_167.h:237
udf_Uint8_t reserved1
Definition: ecma_167.h:246
udf_Uint32_t len
Definition: ecma_167.h:265
Definition: ecma_167.h:976
Definition: ecma_167.h:672
Definition: ecma_167.h:414
udf_Uint8_t infoTimes[0]
Definition: ecma_167.h:884
udf_Uint8_t reserved[3]
Definition: ecma_167.h:892
udf_Uint16_t strat_type
Definition: ecma_167.h:634
udf_Uint32_t vol_desc_seq_num
Definition: ecma_167.h:361
udf_Uint8_t escapeSeq[0]
Definition: ecma_167.h:842
Common type definitions used pervasively in libcdio.
Definition: ecma_167.h:679
udf_regid_t app_ident
Definition: ecma_167.h:314
udf_Uint32_t unused
Definition: ecma_167.h:505
udf_Uint32_t vol_desc_seq_num
Definition: ecma_167.h:343
Definition: ecma_167.h:176
udf_Uint32_t imp_useLength
Definition: ecma_167.h:907
struct logvol_integrity_desc_s::@1::@4 imp_use
udf_Uint8_t component_type
Definition: ecma_167.h:987
udf_long_ad_t icb
Definition: ecma_167.h:584
#define PRAGMA_END_PACKED
Definition: types.h:168
#define VSD_STD_ID_NSR03
Definition: ecma_167.h:219
udf_Uint32_t i_partitions
Definition: ecma_167.h:501
Definition: ecma_167.h:103
udf_Uint32_t rec_len
Definition: ecma_167.h:745
udf_Uint8_t hundreds_of_microseconds
Definition: ecma_167.h:139
udf_Uint32_t attr_type
Definition: ecma_167.h:878
udf_tag_t tag
Definition: ecma_167.h:818
Definition: ecma_167.h:329
Definition: ecma_167.h:985
udf_Uint32_t logical_blocksize
Definition: ecma_167.h:430
udf_Uint32_t access_type
Definition: ecma_167.h:366
udf_Uint32_t vol_desc_seq_num
Definition: ecma_167.h:352
udf_Uint8_t reserved[3]
Definition: ecma_167.h:838
udf_Uint32_t integrity_type
Definition: ecma_167.h:498
udf_long_ad_t fsd_loc
Definition: ecma_167.h:433
udf_Uint32_t i_bits
Definition: ecma_167.h:946
udf_Uint8_t std_ident[VSD_STD_ID_SIZE]
Definition: ecma_167.h:244
udf_regid_t imp_id
Definition: ecma_167.h:1021
udf_Uint16_t group_id
Definition: ecma_167.h:853
udf_Uint16_t year
Definition: ecma_167.h:132
Definition: ecma_167.h:97
Definition: ecma_167.h:669
udf_Uint8_t partition_map_length
Definition: ecma_167.h:473
udf_Uint32_t loc
Definition: ecma_167.h:266
udf_Uint32_t attr_type
Definition: ecma_167.h:890
udf_Uint8_t os_identifier
Definition: ecma_167.h:169
udf_Uint32_t part_len
Definition: ecma_167.h:368
udf_Uint8_t minute
Definition: ecma_167.h:136
udf_Uint8_t imp_use[64]
Definition: ecma_167.h:317
Definition: ecma_167.h:994
udf_Uint32_t i_alloc_descs
Definition: ecma_167.h:482
Definition: ecma_167.h:678
ecma_167_timezone_enum_t debug_ecma_167_timezone_enum
Definition: ecma_167.h:677
Definition: ecma_167.h:681
udf_Uint8_t file_type
Definition: ecma_167.h:638
Definition: ecma_167.h:714
udf_Uint8_t attrData[0]
Definition: ecma_167.h:830
udf_regid_t imp_id
Definition: ecma_167.h:757
udf_tag_t tag
Definition: ecma_167.h:496
udf_Uint16_t desc_version
Definition: ecma_167.h:275
Definition: ecma_167.h:631
udf_Uint32_t lba
Definition: ecma_167.h:398
udf_Uint32_t udf_fsd_num
Definition: ecma_167.h:548
Definition: ecma_167.h:676
udf_Uint16_t max_num_entries
Definition: ecma_167.h:636
udf_timestamp_t attribute_time
Definition: ecma_167.h:754
udf_Uint8_t reserved
Definition: ecma_167.h:292
Definition: ecma_167.h:619
Definition: ecma_167.h:858
udf_Uint32_t i_alloc_descs
Definition: ecma_167.h:627
udf_dstring component_id[0]
Definition: ecma_167.h:990
udf_Uint8_t reserved[3]
Definition: ecma_167.h:862
Definition: ecma_167.h:712
Definition: ecma_167.h:461
udf_Uint8_t pad_to_one_block[2048-216]
Definition: ecma_167.h:1028
#define PRAGMA_BEGIN_PACKED
Definition: types.h:167
udf_Uint32_t attr_type
Definition: ecma_167.h:848
Definition: ecma_167.h:689
udf_long_ad_t stream_directory_ICB
Definition: ecma_167.h:558
udf_Uint8_t reserved[484]
Definition: ecma_167.h:345
udf_Uint32_t bool_ext_location
Definition: ecma_167.h:249
udf_Uint8_t reserved2[32]
Definition: ecma_167.h:255
udf_tag_t tag
Definition: ecma_167.h:480
udf_regid_t imp_id
Definition: ecma_167.h:369
udf_Uint8_t partition_mapping[0]
Definition: ecma_167.h:452
udf_Uint8_t attr_subtype
Definition: ecma_167.h:891
udf_Uint8_t second
Definition: ecma_167.h:137
udf_Uint8_t attr_subtype
Definition: ecma_167.h:904
udf_Uint8_t rec_format
Definition: ecma_167.h:1002
Definition: ecma_167.h:396
Definition: ecma_167.h:616
Definition: ecma_167.h:83
union udf_file_entry_s::@9 u
udf_Uint32_t infoTimeExistence
Definition: ecma_167.h:883
PRAGMA_END_PACKED tag_id_t debug_tagid
udf_timestamp_t recording_time
Definition: ecma_167.h:956
udf_Uint16_t interchange_lvl
Definition: ecma_167.h:543
Definition: ecma_167.h:695
udf_Uint8_t cksum
Definition: ecma_167.h:276
udf_Uint8_t struct_type
Definition: ecma_167.h:234
Definition: ecma_167.h:104
Definition: ecma_167.h:711
udf_Uint32_t bool_ext_length
Definition: ecma_167.h:250
udf_Uint16_t udf_revision
Definition: ecma_167.h:167
Definition: ecma_167.h:615
udf_Uint64_t start_address
Definition: ecma_167.h:252
udf_dstring logvol_id[128]
Definition: ecma_167.h:429
udf_Uint32_t i_extended_attr
Definition: ecma_167.h:759
udf_Uint8_t std_id[VSD_STD_ID_SIZE]
Definition: ecma_167.h:235
udf_Uint32_t loc
Definition: ecma_167.h:281
udf_Uint16_t maxInterchange_lvl
Definition: ecma_167.h:544
udf_Uint8_t reserved[3]
Definition: ecma_167.h:880
udf_timestamp_t attribute_time
Definition: ecma_167.h:1014
struct udf_fileid_desc_s::@5::@8 padding
udf_Uint8_t boot_use[1906]
Definition: ecma_167.h:256
udf_Uint32_t previous_alloc_ext_loc
Definition: ecma_167.h:626
udf_Uint32_t length_extended_attr
Definition: ecma_167.h:1023
udf_Uint32_t attr_type
Definition: ecma_167.h:836
udf_Uint8_t os_class
Definition: ecma_167.h:168
udf_Uint16_t vol_seq_num
Definition: ecma_167.h:303
Definition: ecma_167.h:73
const char VSD_STD_ID_CDW01[sizeof("CDW02")-1]
udf_dstring abstract_file_id[32]
Definition: ecma_167.h:554
Definition: ecma_167.h:707
Definition: ecma_167.h:448
Definition: ecma_167.h:934
udf_extent_ad_t reserve_vol_desc_seq_ext
Definition: ecma_167.h:333
udf_Uint16_t permission
Definition: ecma_167.h:854
udf_Uint8_t charset_info[63]
Definition: ecma_167.h:123
udf_dstring fileSet_id[32]
Definition: ecma_167.h:552
udf_Uint16_t flags
Definition: ecma_167.h:319
udf_regid_t contents
Definition: ecma_167.h:364
udf_Uint8_t lengthComponent_id
Definition: ecma_167.h:988
udf_tag_t tag
Definition: ecma_167.h:996
union extended_file_entry::@10 u
udf_Uint64_t logblks_recorded
Definition: ecma_167.h:1007
#define TIMESTAMP_TIMEZONE_MASK
Definition: ecma_167.h:163
Definition: ecma_167.h:91
Definition: ecma_167.h:84
udf_Uint32_t attrLength
Definition: ecma_167.h:851
Definition: ecma_167.h:102
PRAGMA_BEGIN_PACKED struct udf_charspec_s GNUC_PACKED
Definition: ecma_167.h:671
udf_Uint8_t struct_version
Definition: ecma_167.h:236
udf_Uint32_t gid
Definition: ecma_167.h:999
Definition: ecma_167.h:565
Definition: ecma_167.h:89
ecma_167_enum1_t debug_ecma_167_enum1
udf_timestamp_t access_time
Definition: ecma_167.h:1008
udf_dstring logical_vol_id[128]
Definition: ecma_167.h:550
udf_Uint8_t i_file_id
Definition: ecma_167.h:583
udf_Uint32_t primary_vol_desc_num
Definition: ecma_167.h:301
udf_Uint16_t strat_param
Definition: ecma_167.h:635
uint8_t udf_Uint8_t
Definition: ecma_167.h:109
udf_extent_ad_t integrity_seq_ext
Definition: ecma_167.h:441
Definition: ecma_167.h:77
Definition: ecma_167.h:75
icbtag_file_type_enum_t debug_icbtag_file_type_enum
udf_regid_t domain_id
Definition: ecma_167.h:431
udf_Uint16_t desc_CRC
Definition: ecma_167.h:279
udf_Uint8_t imp_use[256]
Definition: ecma_167.h:960
udf_Uint32_t lengthAllocDescs
Definition: ecma_167.h:938
udf_extent_ad_t vol_abstract
Definition: ecma_167.h:312
udf_Uint8_t reserved[22]
Definition: ecma_167.h:320
udf_Uint16_t interchange_lvl
Definition: ecma_167.h:305
udf_tag_t tag
Definition: ecma_167.h:954
udf_Uint8_t appUse[0]
Definition: ecma_167.h:921
udf_Uint32_t checkpoint
Definition: ecma_167.h:1017
udf_Uint8_t flags
Definition: ecma_167.h:178
udf_charspec_t explanatory_charset
Definition: ecma_167.h:311
udf_Uint8_t imp_use[0]
Definition: ecma_167.h:909
Definition: ecma_167.h:720
udf_regid_t domain_id
Definition: ecma_167.h:556
udf_Uint32_t dataLength
Definition: ecma_167.h:864
Definition: ecma_167.h:709
udf_Uint32_t data[0]
Definition: ecma_167.h:506
udf_Uint32_t charset_list
Definition: ecma_167.h:545
udf_Uint8_t reserved[4]
Definition: ecma_167.h:170
struct logvol_integrity_desc_s::@1::@3 size_table
udf_Uint8_t reserved
Definition: ecma_167.h:277
Definition: ecma_167.h:670
uint64_t udf_Uint64_t
Definition: ecma_167.h:112
udf_tag_t tag
Definition: ecma_167.h:299
udf_Uint8_t attr_subtype
Definition: ecma_167.h:879
Definition: ecma_167.h:470
Definition: ecma_167.h:82
Definition: ecma_167.h:675
udf_Uint8_t partition_map_length
Definition: ecma_167.h:451
udf_Uint8_t partition_map_length
Definition: ecma_167.h:464
Definition: ecma_167.h:241
Definition: ecma_167.h:494
udf_Uint16_t max_interchange_lvl
Definition: ecma_167.h:306
udf_long_ad_t indirect_ICB
Definition: ecma_167.h:724
udf_Uint32_t len
Definition: ecma_167.h:526
icbtag_file_type_enum_t
Definition: ecma_167.h:668
char udf_dstring
Definition: ecma_167.h:113
udf_short_ad_t freed_space_bitmap
Definition: ecma_167.h:571
udf_Uint32_t record_len
Definition: ecma_167.h:1004
udf_Uint8_t rec_display_attr
Definition: ecma_167.h:1003
udf_Uint16_t type_tz
Definition: ecma_167.h:131
udf_Uint32_t attrLength
Definition: ecma_167.h:829
udf_Uint64_t unique_ID
Definition: ecma_167.h:1022
uint32_t udf_Uint32_t
Definition: ecma_167.h:111
udf_tag_t tag
Definition: ecma_167.h:351
Definition: ecma_167.h:64
Definition: ecma_167.h:66
udf_Uint8_t data[0]
Definition: ecma_167.h:594
Definition: ecma_167.h:674
udf_Uint16_t link_count
Definition: ecma_167.h:742
udf_Uint32_t i_partition_maps
Definition: ecma_167.h:438
udf_Uint8_t reserved
Definition: ecma_167.h:637
Definition: ecma_167.h:888
udf_extent_ad_t allocDescs[0]
Definition: ecma_167.h:483
udf_Uint8_t reserved[3]
Definition: ecma_167.h:905
udf_Uint64_t info_len
Definition: ecma_167.h:1005
udf_Uint8_t reserved[32]
Definition: ecma_167.h:559
Definition: ecma_167.h:120
udf_icbtag_t icb_tag
Definition: ecma_167.h:723
Definition: ecma_167.h:78
udf_Uint32_t predecessor_vol_desc_seq_location
Definition: ecma_167.h:318
uint16_t udf_Uint16_t
Definition: ecma_167.h:110
udf_Uint32_t imp_attr_location
Definition: ecma_167.h:819
Definition: ecma_167.h:706
ecma_167_enum1_t
Definition: ecma_167.h:61
udf_Uint32_t maptable_len
Definition: ecma_167.h:437
udf_Uint16_t flags
Definition: ecma_167.h:640
Definition: ecma_167.h:106
Definition: ecma_167.h:87
udf_extent_ad_t next_integrity_ext
Definition: ecma_167.h:499
udf_Uint16_t flags
Definition: ecma_167.h:254
udf_Uint8_t std_id[VSD_STD_ID_SIZE]
Definition: ecma_167.h:290
udf_tag_t tag
Definition: ecma_167.h:625
udf_Uint32_t uid
Definition: ecma_167.h:739
udf_tag_t tag
Definition: ecma_167.h:426
#define TIMESTAMP_TYPE_MASK
Definition: ecma_167.h:159
udf_Uint8_t reserved[24]
Definition: ecma_167.h:979
udf_Uint32_t majorDevice_id
Definition: ecma_167.h:895
udf_timestamp_t modification_time
Definition: ecma_167.h:1010
udf_Uint8_t imp_use[0]
Definition: ecma_167.h:897
file_characteristics_t debug_file_characteristics
udf_long_ad_t stream_directory_ICB
Definition: ecma_167.h:1020
udf_Uint8_t imp_use[128]
Definition: ecma_167.h:370
udf_Uint64_t unique_ID
Definition: ecma_167.h:758
udf_Uint32_t fileTimeExistence
Definition: ecma_167.h:865
udf_timestamp_t desc_creation_time
Definition: ecma_167.h:253
udf_extent_ad_t vol_copyright
Definition: ecma_167.h:313
udf_Uint8_t attr_subtype
Definition: ecma_167.h:861
#define VSD_STD_ID_BEA01
Definition: ecma_167.h:212
Definition: ecma_167.h:79
icbtag_flag_enum_t
Definition: ecma_167.h:686
udf_Uint16_t link_count
Definition: ecma_167.h:1001
udf_Uint64_t logblks_recorded
Definition: ecma_167.h:747
udf_charspec_t fileset_charset
Definition: ecma_167.h:551
udf_Uint16_t id
Definition: ecma_167.h:274
udf_Uint16_t max_vol_seqnum
Definition: ecma_167.h:304
udf_Uint8_t struct_type
Definition: ecma_167.h:192
udf_Uint8_t imp_use[460]
Definition: ecma_167.h:354
Definition: ecma_167.h:99
udf_Uint16_t i_imp_use
Definition: ecma_167.h:591
udf_lb_addr_t loc
Definition: ecma_167.h:417
udf_Uint8_t struct_type
Definition: ecma_167.h:289
Definition: ecma_167.h:165
Definition: ecma_167.h:715
udf_Uint8_t ext_attr[0]
Definition: ecma_167.h:1026
udf_Uint8_t reserved[480]
Definition: ecma_167.h:334
udf_tag_t tag
Definition: ecma_167.h:489
udf_icbtag_t icb_tag
Definition: ecma_167.h:731
udf_lb_addr_t ext_loc
Definition: ecma_167.h:529
udf_tag_t tag
Definition: ecma_167.h:936
udf_Uint32_t information_len
Definition: ecma_167.h:528
Definition: ecma_167.h:358
Definition: ecma_167.h:190
udf_Uint8_t partition_maps[0]
Definition: ecma_167.h:442
Definition: ecma_167.h:901
udf_timestamp_t recording_time
Definition: ecma_167.h:542
udf_Uint32_t charset_list
Definition: ecma_167.h:307
udf_dstring volset_id[UDF_VOLSET_ID_SIZE]
Definition: ecma_167.h:309
struct udf_fileid_desc_s::@5::@6 imp_use
udf_Uint32_t len
Definition: ecma_167.h:407
udf_long_ad_t root_icb
Definition: ecma_167.h:555
Definition: ecma_167.h:88
udf_Uint8_t attr_subtype
Definition: ecma_167.h:916
udf_regid_t boot_ident
Definition: ecma_167.h:248
udf_Uint8_t partition_id[62]
Definition: ecma_167.h:474
udf_Uint8_t alloc_descs[0]
Definition: ecma_167.h:1027
#define VSD_STD_ID_TEA01
Definition: ecma_167.h:220
udf_Uint8_t reserved[156]
Definition: ecma_167.h:371
udf_Uint16_t partitionReferenceNum
Definition: ecma_167.h:399
udf_Uint8_t imp_use[6]
Definition: ecma_167.h:418
udf_Uint32_t seq_num
Definition: ecma_167.h:427
udf_Uint32_t escapeSeqLength
Definition: ecma_167.h:840
udf_charspec_t desc_charset
Definition: ecma_167.h:428
Definition: ecma_167.h:86
udf_Uint8_t struct_version
Definition: ecma_167.h:245
udf_tag_t tag
Definition: ecma_167.h:580
udf_Uint8_t logvol_contents_use[32]
Definition: ecma_167.h:500
udf_Uint8_t logvol_contents_use[16]
Definition: ecma_167.h:436
Definition: ecma_167.h:287
tag_id_t
Definition: ecma_167.h:72
Definition: ecma_167.h:272
Definition: ecma_167.h:708
udf_short_ad_t partition_integrity_table
Definition: ecma_167.h:569
Definition: ecma_167.h:834
udf_Uint64_t object_size
Definition: ecma_167.h:1006
udf_Uint32_t attr_type
Definition: ecma_167.h:915
udf_tag_t tag
Definition: ecma_167.h:737
udf_Uint8_t rec_disp_attr
Definition: ecma_167.h:744
udf_tag_t tag
Definition: ecma_167.h:945
udf_regid_t imp_ident
Definition: ecma_167.h:316
udf_regid_t app_id
Definition: ecma_167.h:920
#define VSD_STD_ID_BOOT2
Definition: ecma_167.h:213
udf_Uint8_t reserved[3]
Definition: ecma_167.h:850
Definition: ecma_167.h:617
udf_Uint32_t i_bytes
Definition: ecma_167.h:947
udf_charspec_t logical_vol_id_charset
Definition: ecma_167.h:549
union udf_fileid_desc_s::@5 u
udf_tag_t tag
Definition: ecma_167.h:360
udf_Uint32_t minorDevice_id
Definition: ecma_167.h:896
file_characteristics_t
Definition: ecma_167.h:614
udf_Uint32_t attrLength
Definition: ecma_167.h:918
udf_icbtag_t icb_tag
Definition: ecma_167.h:738
udf_Uint32_t fileset_num
Definition: ecma_167.h:547
udf_dstring vol_ident[UDF_VOLID_SIZE]
Definition: ecma_167.h:302
#define TIMESTAMP_TYPE_AGREEMENT
Definition: ecma_167.h:162
udf_Uint8_t alloc_descs[0]
Definition: ecma_167.h:766
udf_Uint32_t max_charset_list
Definition: ecma_167.h:546
#define TIMESTAMP_TYPE_LOCAL
Definition: ecma_167.h:161
Definition: ecma_167.h:539
udf_regid_t imp_id
Definition: ecma_167.h:908
udf_long_ad_t next_ext
Definition: ecma_167.h:557
udf_Uint32_t recorded_len
Definition: ecma_167.h:527
udf_short_ad_t freed_space_table
Definition: ecma_167.h:570
Definition: ecma_167.h:846
udf_timestamp_t modification_time
Definition: ecma_167.h:751
Definition: ecma_167.h:876
udf_Uint32_t permissions
Definition: ecma_167.h:741
udf_Uint8_t partition_map_type
Definition: ecma_167.h:450
udf_Uint16_t number
Definition: ecma_167.h:363
udf_Uint8_t pad_to_one_block[2048-176]
Definition: ecma_167.h:767
udf_Uint32_t attrLength
Definition: ecma_167.h:839
udf_Uint8_t centiseconds
Definition: ecma_167.h:138
udf_Uint8_t reserved[3]
Definition: ecma_167.h:917
udf_Uint32_t i_alloc_descs
Definition: ecma_167.h:760
Definition: ecma_167.h:673
udf_regid_t imp_id
Definition: ecma_167.h:959
Definition: ecma_167.h:76
struct udf_fileid_desc_s::@5::@7 file_id
udf_Uint8_t charSetType
Definition: ecma_167.h:841
#define VSD_STD_ID_CD001
Definition: ecma_167.h:214
union logvol_integrity_desc_s::@1 u
udf_Uint32_t attrLength
Definition: ecma_167.h:881
udf_Uint16_t i_partition
Definition: ecma_167.h:466
Definition: ecma_167.h:62
Definition: ecma_167.h:710
Definition: ecma_167.h:67
udf_Uint8_t file_characteristics
Definition: ecma_167.h:582
udf_Uint8_t struct_version
Definition: ecma_167.h:194
udf_Uint64_t info_len
Definition: ecma_167.h:746
udf_Uint16_t desc_CRC_len
Definition: ecma_167.h:280
udf_Uint8_t reserved[88]
Definition: ecma_167.h:572
Definition: ecma_167.h:340
udf_Uint16_t file_version_num
Definition: ecma_167.h:581
udf_Uint32_t pos
Definition: ecma_167.h:408
udf_long_ad_t ext_attr_ICB
Definition: ecma_167.h:1019
udf_Uint32_t imp_useLength
Definition: ecma_167.h:894
#define TIMESTAMP_TYPE_CUT
Definition: ecma_167.h:160
Definition: ecma_167.h:297
Definition: ecma_167.h:682
udf_regid_t imp_id
Definition: ecma_167.h:353
udf_Uint8_t day
Definition: ecma_167.h:134
Definition: ecma_167.h:85
udf_Uint16_t unused
Definition: ecma_167.h:593
udf_short_ad_t unalloc_space_bitmap
Definition: ecma_167.h:568
udf_timestamp_t recording_time
Definition: ecma_167.h:315
Definition: ecma_167.h:728
Definition: ecma_167.h:716
udf_Uint8_t struct_data[2041]
Definition: ecma_167.h:195
Definition: ecma_167.h:100
udf_Uint8_t partition_map_type
Definition: ecma_167.h:472
udf_Uint8_t attr_subtype
Definition: ecma_167.h:837
Definition: ecma_167.h:701
udf_Uint8_t integrityType
Definition: ecma_167.h:957
Definition: ecma_167.h:74
Definition: ecma_167.h:735
struct logvol_integrity_desc_s::@1::@2 freespace_table
udf_Uint8_t attr_subtype
Definition: ecma_167.h:849
udf_Uint32_t gid
Definition: ecma_167.h:740
udf_Uint32_t permissions
Definition: ecma_167.h:1000
icbtag_flag_enum_t debug_flag_enum
Definition: ecma_167.h:618
Definition: ecma_167.h:92
udf_Uint32_t attrLength
Definition: ecma_167.h:863
udf_timestamp_t create_time
Definition: ecma_167.h:1013
udf_Uint32_t imp_use_len
Definition: ecma_167.h:503
Definition: ecma_167.h:263
udf_tag_t tag
Definition: ecma_167.h:541
udf_Uint32_t dataLength
Definition: ecma_167.h:882
Definition: ecma_167.h:405
udf_Uint8_t hour
Definition: ecma_167.h:135
udf_Uint8_t month
Definition: ecma_167.h:133
udf_Uint8_t reserved[496]
Definition: ecma_167.h:490
Definition: ecma_167.h:623
udf_charspec_enum_t
Definition: ecma_167.h:96
udf_Uint64_t load_address
Definition: ecma_167.h:251
udf_Uint32_t attrLength
Definition: ecma_167.h:906
Definition: ecma_167.h:680
udf_Uint8_t rec_format
Definition: ecma_167.h:743
udf_Uint8_t ext_attr[0]
Definition: ecma_167.h:765
udf_tag_t tag
Definition: ecma_167.h:730
udf_long_ad_t ext_attr_ICB
Definition: ecma_167.h:756
Definition: ecma_167.h:90
udf_Uint32_t uid
Definition: ecma_167.h:998
Definition: ecma_167.h:713
udf_Uint32_t start_loc
Definition: ecma_167.h:367
udf_tag_t tag
Definition: ecma_167.h:331
Definition: ecma_167.h:687
udf_Uint64_t uniqueID
Definition: ecma_167.h:978
udf_short_ad_t unalloc_space_table
Definition: ecma_167.h:567
udf_Uint8_t bitmap[0]
Definition: ecma_167.h:948
udf_Uint8_t fileTimes
Definition: ecma_167.h:866
udf_Uint32_t app_attr_location
Definition: ecma_167.h:820
udf_Uint8_t reserved[175]
Definition: ecma_167.h:958
Definition: ecma_167.h:487
udf_Uint32_t max_charset_list
Definition: ecma_167.h:308
udf_Uint8_t microseconds
Definition: ecma_167.h:140
udf_extent_ad_t next_vol_desc_set_ext
Definition: ecma_167.h:344
Definition: ecma_167.h:129
udf_Uint8_t logvol_content_use[16]
Definition: ecma_167.h:434
udf_timestamp_t access_time
Definition: ecma_167.h:748
udf_Uint8_t std_id[VSD_STD_ID_SIZE]
Definition: ecma_167.h:193
udf_Uint16_t flags
Definition: ecma_167.h:362
udf_tag_t tag
Definition: ecma_167.h:722
udf_Uint32_t attr_type
Definition: ecma_167.h:903
Definition: ecma_167.h:101
udf_Uint32_t attr_type
Definition: ecma_167.h:826
udf_regid_t imp_id
Definition: ecma_167.h:439
union logical_vol_desc_s::@0 lvd_use
udf_Uint32_t attrLength
Definition: ecma_167.h:893
Definition: ecma_167.h:98
Definition: ecma_167.h:952
udf_Uint8_t partition_map_type
Definition: ecma_167.h:463
Definition: ecma_167.h:943
udf_icbtag_t icb_tag
Definition: ecma_167.h:997
udf_Uint8_t allocDescs[0]
Definition: ecma_167.h:939
udf_regid_t arch_type
Definition: ecma_167.h:247
udf_icbtag_t icb_tag
Definition: ecma_167.h:937
udf_Uint8_t imp_use[128]
Definition: ecma_167.h:440
udf_Uint32_t length_alloc_descs
Definition: ecma_167.h:1024
udf_id_suffix_t id_suffix
Definition: ecma_167.h:180
udf_Uint32_t len
Definition: ecma_167.h:416
udf_Uint32_t prev_num_dirs
Definition: ecma_167.h:633
udf_icbtag_t icb_tag
Definition: ecma_167.h:955
Definition: ecma_167.h:524
Definition: ecma_167.h:824
udf_Uint32_t attr_type
Definition: ecma_167.h:860
udf_lb_addr_t parent_ICB
Definition: ecma_167.h:639
udf_Uint16_t vol_seq_num
Definition: ecma_167.h:465
udf_Uint8_t reserved[3]
Definition: ecma_167.h:828
udf_Uint8_t struct_version
Definition: ecma_167.h:291
udf_tag_t tag
Definition: ecma_167.h:342
udf_Uint32_t vol_desc_seq_num
Definition: ecma_167.h:481
udf_extent_ad_t main_vol_desc_seq_ext
Definition: ecma_167.h:332
Definition: ecma_167.h:478
Definition: ecma_167.h:81
udf_Uint8_t struct_data[2040]
Definition: ecma_167.h:293
Definition: ecma_167.h:578