Changeset 68991 in vbox for trunk/src/VBox/Runtime/common/fs
- Timestamp:
- Oct 5, 2017 8:15:11 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 118260
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/fs/isovfs.cpp
r68921 r68991 175 175 typedef RTFSISODIROBJ *PRTFSISODIROBJ; 176 176 177 /** 178 * Information about a logical partition. 177 /** Pointer to info about a UDF volume. */ 178 typedef struct RTFSISOVOLUDFVOL *PRTFSISOVOLUDFVOL; 179 180 /** 181 * Information about a logical UDF partition. 182 * 183 * This combins information from the partition descriptor, the UDFPARTMAPTYPE1 184 * and the UDFPARTMAPTYPE2 structure. 179 185 */ 180 186 typedef struct RTFSISOVOLUDFPART … … 182 188 /** Partition number (not index). */ 183 189 uint16_t uPartitionNo; 190 /** Parition flags (UDF_PARTITION_FLAGS_XXX). */ 184 191 uint16_t fFlags; 185 192 /** Number of sectors. */ 186 193 uint32_t cSectors; 187 #if 0 188 189 190 /** 0x000: The descriptor tag (UDF_TAG_ID_PARTITION_DESC). */ 191 UDFTAG Tag; 192 /** 0x010: Volume descriptor sequence number. */ 193 uint32_t uVolumeDescSeqNo; 194 /** 0x014: The partition flags (UDF_PARTITION_FLAGS_XXX). */ 195 uint16_t fFlags; 196 /** 0x016: The partition number. */ 197 uint16_t uPartitionNo; 198 /** 0x018: Partition contents (UDF_ENTITY_ID_PD_PARTITION_CONTENTS_XXX). */ 199 UDFENTITYID PartitionContents; 200 /** 0x038: partition contents use (depends on the PartitionContents field). */ 201 union 202 { 203 /** Generic view. */ 204 uint8_t ab[128]; 205 /** UDF partition header descriptor (UDF_ENTITY_ID_PD_PARTITION_CONTENTS_UDF). */ 206 UDFPARTITIONHDRDESC Hdr; 207 } ContentsUse; 208 /** 0x0b8: Access type (UDF_PART_ACCESS_TYPE_XXX). */ 209 uint32_t uAccessType; 210 /** 0x0bc: Partition starting location (logical sector number). */ 211 uint32_t offLocation; 212 /** 0x0c0: Partition length in sectors. */ 213 uint32_t cSectors; 214 /** 0x0c4: Implementation identifier ("*Developer ID"). */ 215 UDFENTITYID idImplementation; 216 /** 0x0e4: Implemenation use bytes. */ 217 union 218 { 219 /** Generic view. */ 220 uint8_t ab[128]; 221 } ImplementationUse; 222 /** 0x164: Reserved. */ 223 uint8_t abReserved[156]; 224 #endif 225 194 /** Partition starting location as a byte offset. */ 195 uint64_t offByteLocation; 196 /** Partition starting location (logical sector number). */ 197 uint32_t offLocation; 198 /** Set if Hdr is valid. */ 199 bool fHaveHdr; 200 /** Copy of UDFPARTITIONDESC::ContentsUse::Hdr. */ 201 UDFPARTITIONHDRDESC Hdr; 202 203 /** Pointer to the volume this partition belongs to. */ 204 PRTFSISOVOLUDFVOL pVol; 226 205 } RTFSISOVOLUDFPART; 206 typedef RTFSISOVOLUDFPART *PRTFSISOVOLUDFPART; 207 208 /** 209 * Information about a UDF volume (/ volume set). 210 * 211 * This combines information from the primary and logical descriptors. 212 * 213 * @note There is only one volume per volume set in the current UDF 214 * implementation. So, this can be considered a volume and a volume set. 215 */ 216 typedef struct RTFSISOVOLUDFVOL 217 { 218 /** The extent containing the file set descriptor. */ 219 UDFLONGAD FileSetDescriptor; 220 221 /** The logical block size on this volume. */ 222 uint32_t cbBlock; 223 /** Primary volume descriptor number. */ 224 uint32_t uPrimaryVolumeDescNo; 225 /** Volume sequence number. */ 226 uint16_t uVolumeSeqNo; 227 /** Maximum volume sequence number. */ 228 uint16_t uMaxVolumeSeqNo; 229 /** Flags (UDF_PVD_FLAGS_XXX). */ 230 uint16_t fFlags; 231 232 /** Number of partitions in this volume. */ 233 uint16_t cPartitions; 234 /** Partitions in this volume. */ 235 PRTFSISOVOLUDFPART paPartitions; 236 237 /** Volume identifier (dstring). */ 238 UDFDSTRING achVolumeID[32]; 239 /** The volume ID string. */ 240 UDFDSTRING achLogicalVolumeID[128]; 241 } RTFSISOVOLUDFVOL; 227 242 228 243 … … 272 287 /** Number of volume sets. */ 273 288 uint8_t cVolumeSets; 289 /** Number of entries in the array paPartitions points to. */ 290 uint8_t cPartitions; 274 291 /** Set if we already seen the primary volume descriptor. */ 275 292 bool fSeenPrimaryDesc : 1; 293 /** Partitions. */ 294 PRTFSISOVOLUDFPART paPartitions; 295 276 296 #if 0 277 297 /** Volume sets. */ … … 284 304 } aVolumeSets[1]; 285 305 286 287 /** Partitions. */288 struct289 {290 291 } aPartitions[]292 306 #endif 293 307 } udf; … … 2656 2670 break; 2657 2671 2658 case UDF_TAG_ID_IMPLEMEN ATION_USE_VOLUME_DESC:2672 case UDF_TAG_ID_IMPLEMENTATION_USE_VOLUME_DESC: 2659 2673 rc = rtFsIsoVolProcessUdfImplUseVolDesc(pThis, (PCUDFIMPLEMENTATIONUSEVOLUMEDESC)pTag, pErrInfo); 2660 2674 break;
Note:
See TracChangeset
for help on using the changeset viewer.