From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=jaben.carsey@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 4CB6221F2AF8E for ; Thu, 28 Sep 2017 07:19:19 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Sep 2017 07:22:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,450,1500966000"; d="scan'208";a="904767556" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by FMSMGA003.fm.intel.com with ESMTP; 28 Sep 2017 07:22:33 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 28 Sep 2017 07:22:33 -0700 Received: from fmsmsx103.amr.corp.intel.com ([169.254.2.182]) by FMSMSX153.amr.corp.intel.com ([169.254.9.146]) with mapi id 14.03.0319.002; Thu, 28 Sep 2017 07:22:32 -0700 From: "Carsey, Jaben" To: "Ni, Ruiyu" , "Wu, Hao A" , "edk2-devel@lists.01.org" Thread-Topic: [PATCH v2] ShellPkg/dh: Add the 'dh' dump support for Partition Info protocol Thread-Index: AQHTODa4j1GXw0cJ1EqFq9Ita247GKLKWfTw Date: Thu, 28 Sep 2017 14:22:32 +0000 Message-ID: References: <20170928083259.3776-1-hao.a.wu@intel.com> <734D49CCEBEEF84792F5B80ED585239D5BA6EB8C@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5BA6EB8C@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2VkNGU4NzUtMDcxNy00MzdhLTk0MDUtMzA4ODMwMmQyNjJmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6InJjZ0ZIeCt5N011UjFwSUVObnIwaWN2UEh1VklXdlwvdVA2aXRcLzVxMzVEcz0ifQ== x-ctpclassification: CTP_IC x-originating-ip: [10.1.200.108] MIME-Version: 1.0 Subject: Re: [PATCH v2] ShellPkg/dh: Add the 'dh' dump support for Partition Info protocol 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: , X-List-Received-Date: Thu, 28 Sep 2017 14:19:19 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Jaben Carsey > -----Original Message----- > From: Ni, Ruiyu > Sent: Thursday, September 28, 2017 1:50 AM > To: Wu, Hao A ; edk2-devel@lists.01.org > Cc: Carsey, Jaben > Subject: RE: [PATCH v2] ShellPkg/dh: Add the 'dh' dump support for Partit= ion > Info protocol > Importance: High >=20 > Reviewed-by: Ruiyu Ni >=20 > Thanks/Ray >=20 > > -----Original Message----- > > From: Wu, Hao A > > Sent: Thursday, September 28, 2017 4:33 PM > > To: edk2-devel@lists.01.org > > Cc: Wu, Hao A ; Ni, Ruiyu ; > Carsey, > > Jaben > > Subject: [PATCH v2] ShellPkg/dh: Add the 'dh' dump support for Partitio= n > Info > > protocol > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D655 > > > > V2 change: > > Put some strings into the UNI file for localization. > > > > The dump information will include: > > a. The type of the partition (Mbr, Gpt or Other); b. Whether the partit= ion is > an > > EFI System Partition. > > > > Cc: Ruiyu Ni > > Cc: Jaben Carsey > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Hao Wu > > --- > > .../UefiHandleParsingLib/UefiHandleParsingLib.c | 86 > > ++++++++++++++++++++++ > > .../UefiHandleParsingLib/UefiHandleParsingLib.h | 1 + > > .../UefiHandleParsingLib/UefiHandleParsingLib.inf | 1 > > + .../UefiHandleParsingLib/UefiHandleParsingLib.uni | 9 +++ > > 4 files changed, 97 insertions(+) > > > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib= .c > > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > > index d12466c7b0..a228226623 100644 > > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > > @@ -1933,6 +1933,87 @@ ERROR_EXIT: > > return NULL; > > } > > > > +/** > > + Function to dump information about Partition Information protocol. > > + > > + This will allocate the return buffer from boot services pool. > > + > > + @param[in] TheHandle The handle that has the protocol installed= . > > + @param[in] Verbose TRUE for additional information, FALSE > otherwise. > > + > > + @retval A pointer to a string containing the information. > > +**/ > > +CHAR16* > > +EFIAPI > > +PartitionInfoProtocolDumpInformation ( > > + IN CONST EFI_HANDLE TheHandle, > > + IN CONST BOOLEAN Verbose > > + ) > > +{ > > + EFI_STATUS Status; > > + EFI_PARTITION_INFO_PROTOCOL *PartitionInfo; > > + CHAR16 *PartitionType; > > + CHAR16 *EfiSystemPartition; > > + CHAR16 *RetVal; > > + > > + if (!Verbose) { > > + return NULL; > > + } > > + > > + Status =3D gBS->OpenProtocol ( > > + TheHandle, > > + &gEfiPartitionInfoProtocolGuid, > > + (VOID**)&PartitionInfo, > > + gImageHandle, > > + NULL, > > + EFI_OPEN_PROTOCOL_GET_PROTOCOL > > + ); > > + if (EFI_ERROR (Status)) { > > + return NULL; > > + } > > + > > + HandleParsingHiiInit (); > > + > > + switch (PartitionInfo->Type) { > > + case PARTITION_TYPE_OTHER: > > + PartitionType =3D HiiGetString (mHandleParsingHiiHandle, > > STRING_TOKEN(STR_PARTINFO_DUMP_TYPE_OTHER), NULL); > > + break; > > + case PARTITION_TYPE_MBR: > > + PartitionType =3D HiiGetString (mHandleParsingHiiHandle, > > STRING_TOKEN(STR_PARTINFO_DUMP_TYPE_MBR), NULL); > > + break; > > + case PARTITION_TYPE_GPT: > > + PartitionType =3D HiiGetString (mHandleParsingHiiHandle, > > STRING_TOKEN(STR_PARTINFO_DUMP_TYPE_GPT), NULL); > > + break; > > + default: > > + PartitionType =3D NULL; > > + break; > > + } > > + if (PartitionType =3D=3D NULL) { > > + return NULL; > > + } > > + > > + if (PartitionInfo->System =3D=3D 1) { > > + EfiSystemPartition =3D HiiGetString (mHandleParsingHiiHandle, > > + STRING_TOKEN(STR_PARTINFO_DUMP_EFI_SYS_PART), NULL); } else { > > + EfiSystemPartition =3D HiiGetString (mHandleParsingHiiHandle, > > + STRING_TOKEN(STR_PARTINFO_DUMP_NOT_EFI_SYS_PART), NULL); } > if > > + (EfiSystemPartition =3D=3D NULL) { > > + SHELL_FREE_NON_NULL (PartitionType); > > + return NULL; > > + } > > + > > + RetVal =3D CatSPrint ( > > + NULL, > > + L"%s\r\n%s", > > + PartitionType, > > + EfiSystemPartition > > + ); > > + > > + SHELL_FREE_NON_NULL (EfiSystemPartition); > > + SHELL_FREE_NON_NULL (PartitionType); > > + return RetVal; > > +} > > + > > // > > // Put the information on the NT32 protocol GUIDs here so we are not > > dependant on the Nt32Pkg // @@ -2147,6 +2228,11 @@ STATIC CONST > > GUID_INFO_BLOCK mGuidStringList[] =3D { > > {STRING_TOKEN(STR_ADAPTER_INFO), > > &gEfiAdapterInformationProtocolGuid, > > AdapterInformationDumpInformation}, > > > > // > > +// UEFI 2.7 > > +// > > + {STRING_TOKEN(STR_PARTITION_INFO), > &gEfiPartitionInfoProtocolGuid, > > PartitionInfoProtocolDumpInformation}, > > + > > +// > > // PI Spec ones > > // > > {STRING_TOKEN(STR_IDE_CONT_INIT), > > &gEfiIdeControllerInitProtocolGuid, NULL}, > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib= .h > > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > > index cf849658aa..68bb00c620 100644 > > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.h > > @@ -138,6 +138,7 @@ > > #include #include > > #include > > +#include > > > > #include > > #include > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib= .inf > > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf > > index 4c1c3d3846..ee1b85552b 100644 > > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf > > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf > > @@ -292,6 +292,7 @@ > > gEfiHttpProtocolGuid ## UNDEFINED > > gEfiHttpUtilitiesProtocolGuid ## UNDEFINED > > gEfiRestProtocolGuid ## UNDEFINED > > + gEfiPartitionInfoProtocolGuid ## CONSUMES > > > > [Guids] > > gEfiFileInfoGuid ## UNDEFINED > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib= .uni > > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > > index f49ca94623..be583aa742 100644 > > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > > @@ -152,6 +152,9 @@ > > #string STR_SHELL #language en-US "Shell" > > #string STR_SHELL_DYNAMIC #language en-US > "ShellDynamicCommand" > > > > +// Partition Information > > +#string STR_PARTITION_INFO #language en-US "PartitionInformatio= n" > > + > > #string STR_EFI_GLOBAL_VARIABLE #language en-US "EFIGlobalVariable" > > > > // NT32 emulation > > @@ -478,3 +481,9 @@ > > = " > > AttributesSetting : %%H%s%%N\r\n" > > = " > > Compatibilities : %%H0x%L016x%%N\r\n" > > = " > > LowestSupportedImageVersion : %%H0x%08x%%N\r\n" > > + > > +#string STR_PARTINFO_DUMP_TYPE_OTHER #language en-US " > Partition > > Type : Other" > > +#string STR_PARTINFO_DUMP_TYPE_MBR #language en-US " > Partition > > Type : MBR" > > +#string STR_PARTINFO_DUMP_TYPE_GPT #language en-US " > Partition > > Type : GPT" > > +#string STR_PARTINFO_DUMP_EFI_SYS_PART #language en-US " EFI > System > > Partition : Yes" > > +#string STR_PARTINFO_DUMP_NOT_EFI_SYS_PART #language en-US " > EFI > > System Partition : No" > > -- > > 2.12.0.windows.1