2 OSTA Universal Disk Format (UDF) definitions.
4 Copyright (C) 2014-2017 Paulo Alcantara <pcacjr@zytor.com>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
12 #define UDF_BEA_IDENTIFIER "BEA01"
13 #define UDF_NSR2_IDENTIFIER "NSR02"
14 #define UDF_NSR3_IDENTIFIER "NSR03"
15 #define UDF_TEA_IDENTIFIER "TEA01"
17 #define UDF_LOGICAL_SECTOR_SHIFT 11
18 #define UDF_LOGICAL_SECTOR_SIZE ((UINT64)(1ULL << UDF_LOGICAL_SECTOR_SHIFT))
19 #define UDF_VRS_START_OFFSET ((UINT64)(16ULL << UDF_LOGICAL_SECTOR_SHIFT))
22 UdfPrimaryVolumeDescriptor
= 1,
23 UdfAnchorVolumeDescriptorPointer
= 2,
24 UdfVolumeDescriptorPointer
= 3,
25 UdfImplemenationUseVolumeDescriptor
= 4,
26 UdfPartitionDescriptor
= 5,
27 UdfLogicalVolumeDescriptor
= 6,
28 UdfUnallocatedSpaceDescriptor
= 7,
29 UdfTerminatingDescriptor
= 8,
30 UdfLogicalVolumeIntegrityDescriptor
= 9,
31 UdfFileSetDescriptor
= 256,
32 UdfFileIdentifierDescriptor
= 257,
33 UdfAllocationExtentDescriptor
= 258,
35 UdfExtendedFileEntry
= 266,
36 } UDF_VOLUME_DESCRIPTOR_ID
;
42 UINT16 DescriptorVersion
;
45 UINT16 TagSerialNumber
;
47 UINT16 DescriptorCRCLength
;
53 UINT32 ExtentLocation
;
57 UINT8 CharacterSetType
;
58 UINT8 CharacterSetInfo
[63];
66 // Domain Entity Identifier
74 // UDF Entity Identifier
83 // Implementation Entity Identifier
88 UINT8 ImplementationUseArea
[6];
89 } ImplementationEntity
;
91 // Application Entity Identifier
94 UINT8 ApplicationUseArea
[8];
97 // Raw Identifier Suffix
106 UINT32 LogicalBlockNumber
;
107 UINT16 PartitionReferenceNumber
;
112 UDF_LB_ADDR ExtentLocation
;
113 UINT8 ImplementationUse
[6];
114 } UDF_LONG_ALLOCATION_DESCRIPTOR
;
117 UDF_DESCRIPTOR_TAG DescriptorTag
;
118 UDF_EXTENT_AD MainVolumeDescriptorSequenceExtent
;
119 UDF_EXTENT_AD ReserveVolumeDescriptorSequenceExtent
;
121 } UDF_ANCHOR_VOLUME_DESCRIPTOR_POINTER
;
124 UDF_DESCRIPTOR_TAG DescriptorTag
;
125 UINT32 VolumeDescriptorSequenceNumber
;
126 UDF_CHAR_SPEC DescriptorCharacterSet
;
127 UINT8 LogicalVolumeIdentifier
[128];
128 UINT32 LogicalBlockSize
;
129 UDF_ENTITY_ID DomainIdentifier
;
130 UDF_LONG_ALLOCATION_DESCRIPTOR LogicalVolumeContentsUse
;
131 UINT32 MapTableLength
;
132 UINT32 NumberOfPartitionMaps
;
133 UDF_ENTITY_ID ImplementationIdentifier
;
134 UINT8 ImplementationUse
[128];
135 UDF_EXTENT_AD IntegritySequenceExtent
;
136 UINT8 PartitionMaps
[6];
137 } UDF_LOGICAL_VOLUME_DESCRIPTOR
;