From nobody Thu Dec 26 13:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1506104082156274.82876809992547; Fri, 22 Sep 2017 11:14:42 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 3A99C21E1B753; Fri, 22 Sep 2017 11:11:32 -0700 (PDT) Received: from mail.zytor.com (terminus.zytor.com [65.50.211.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C9C5B21E43B50 for ; Fri, 22 Sep 2017 11:11:31 -0700 (PDT) Received: from ALCANTAP5.auth.hpicorp.net (corporativo.static.gvt.net.br [177.135.97.54] (may be forged)) (authenticated bits=0) by mail.zytor.com (8.15.2/8.15.2) with ESMTPSA id v8MICCkU014705 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=NO); Fri, 22 Sep 2017 11:12:28 -0700 X-Original-To: edk2-devel@lists.01.org From: Paulo Alcantara To: edk2-devel@lists.01.org Date: Fri, 22 Sep 2017 15:11:31 -0300 Message-Id: <9e21604ae36a1ba5ae759f07dc76a2b012557175.1506103370.git.pcacjr@zytor.com> X-Mailer: git-send-email 2.13.3.windows.1 In-Reply-To: References: In-Reply-To: References: Subject: [edk2] [PATCH v4 1/2] MdePkg: Add UDF volume structure definitions X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michael D Kinney , Laszlo Ersek , Ruiyu Ni , Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch adds a few more UDF volume structures in order to detect an UDF file system which is supported by current EDK2 UDF file system implementation in Partition driver. Cc: Michael D Kinney Cc: Liming Gao Cc: Laszlo Ersek Cc: Ruiyu Ni Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Paulo Alcantara Build-tested-by: Laszlo Ersek Reviewed-by: Star Zeng Tested-by: Hao Wu Build-tested-by: Star Zeng Build-tested-by: Paulo Alcantara --- MdePkg/Include/IndustryStandard/Udf.h | 97 +++++++++++++++++++- 1 file changed, 92 insertions(+), 5 deletions(-) diff --git a/MdePkg/Include/IndustryStandard/Udf.h b/MdePkg/Include/Industr= yStandard/Udf.h index 0febb4bcda..5806560aee 100644 --- a/MdePkg/Include/IndustryStandard/Udf.h +++ b/MdePkg/Include/IndustryStandard/Udf.h @@ -24,11 +24,22 @@ #define UDF_LOGICAL_SECTOR_SIZE ((UINT64)(1ULL << UDF_LOGICAL_SECTOR_SHI= FT)) #define UDF_VRS_START_OFFSET ((UINT64)(16ULL << UDF_LOGICAL_SECTOR_SH= IFT)) =20 -#define _GET_TAG_ID(_Pointer) \ - (((UDF_DESCRIPTOR_TAG *)(_Pointer))->TagIdentifier) - -#define IS_AVDP(_Pointer) \ - ((BOOLEAN)(_GET_TAG_ID (_Pointer) =3D=3D 2)) +typedef enum { + UdfPrimaryVolumeDescriptor =3D 1, + UdfAnchorVolumeDescriptorPointer =3D 2, + UdfVolumeDescriptorPointer =3D 3, + UdfImplemenationUseVolumeDescriptor =3D 4, + UdfPartitionDescriptor =3D 5, + UdfLogicalVolumeDescriptor =3D 6, + UdfUnallocatedSpaceDescriptor =3D 7, + UdfTerminatingDescriptor =3D 8, + UdfLogicalVolumeIntegrityDescriptor =3D 9, + UdfFileSetDescriptor =3D 256, + UdfFileIdentifierDescriptor =3D 257, + UdfAllocationExtentDescriptor =3D 258, + UdfFileEntry =3D 261, + UdfExtendedFileEntry =3D 266, +} UDF_VOLUME_DESCRIPTOR_ID; =20 #pragma pack(1) =20 @@ -49,12 +60,88 @@ typedef struct { } UDF_EXTENT_AD; =20 typedef struct { + UINT8 CharacterSetType; + UINT8 CharacterSetInfo[63]; +} UDF_CHAR_SPEC; + +typedef struct { + UINT8 Flags; + UINT8 Identifier[23]; + union { + // + // Domain Entity Identifier + // + struct { + UINT16 UdfRevision; + UINT8 DomainFlags; + UINT8 Reserved[5]; + } Domain; + // + // UDF Entity Identifier + // + struct { + UINT16 UdfRevision; + UINT8 OSClass; + UINT8 OSIdentifier; + UINT8 Reserved[4]; + } Entity; + // + // Implementation Entity Identifier + // + struct { + UINT8 OSClass; + UINT8 OSIdentifier; + UINT8 ImplementationUseArea[6]; + } ImplementationEntity; + // + // Application Entity Identifier + // + struct { + UINT8 ApplicationUseArea[8]; + } ApplicationEntity; + // + // Raw Identifier Suffix + // + struct { + UINT8 Data[8]; + } Raw; + } Suffix; +} UDF_ENTITY_ID; + +typedef struct { + UINT32 LogicalBlockNumber; + UINT16 PartitionReferenceNumber; +} UDF_LB_ADDR; + +typedef struct { + UINT32 ExtentLength; + UDF_LB_ADDR ExtentLocation; + UINT8 ImplementationUse[6]; +} UDF_LONG_ALLOCATION_DESCRIPTOR; + +typedef struct { UDF_DESCRIPTOR_TAG DescriptorTag; UDF_EXTENT_AD MainVolumeDescriptorSequenceExtent; UDF_EXTENT_AD ReserveVolumeDescriptorSequenceExtent; UINT8 Reserved[480]; } UDF_ANCHOR_VOLUME_DESCRIPTOR_POINTER; =20 +typedef struct { + UDF_DESCRIPTOR_TAG DescriptorTag; + UINT32 VolumeDescriptorSequenceNumber; + UDF_CHAR_SPEC DescriptorCharacterSet; + UINT8 LogicalVolumeIdentifier[128]; + UINT32 LogicalBlockSize; + UDF_ENTITY_ID DomainIdentifier; + UDF_LONG_ALLOCATION_DESCRIPTOR LogicalVolumeContentsUse; + UINT32 MapTableLength; + UINT32 NumberOfPartitionMaps; + UDF_ENTITY_ID ImplementationIdentifier; + UINT8 ImplementationUse[128]; + UDF_EXTENT_AD IntegritySequenceExtent; + UINT8 PartitionMaps[6]; +} UDF_LOGICAL_VOLUME_DESCRIPTOR; + #pragma pack() =20 #endif --=20 2.13.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel