From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=jaben.carsey@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 A426721D046B3 for ; Wed, 27 Sep 2017 07:05:11 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Sep 2017 07:08:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,445,1500966000"; d="scan'208";a="156687572" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga006.fm.intel.com with ESMTP; 27 Sep 2017 07:08:24 -0700 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 27 Sep 2017 07:08:24 -0700 Received: from fmsmsx103.amr.corp.intel.com ([169.254.2.182]) by fmsmsx115.amr.corp.intel.com ([169.254.4.50]) with mapi id 14.03.0319.002; Wed, 27 Sep 2017 07:08:24 -0700 From: "Carsey, Jaben" To: "Wu, Hao A" , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" Thread-Topic: [PATCH] ShellPkg/dh: Add the 'dh' dump support for Partition Info protocol Thread-Index: AQHTN45BztKjHA+euE6rUycijmmg+KLIxLSg Date: Wed, 27 Sep 2017 14:08:23 +0000 Message-ID: References: <20170927124312.27228-1-hao.a.wu@intel.com> In-Reply-To: <20170927124312.27228-1-hao.a.wu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDc0MDRmNTMtMWZjYy00MjNkLWFlNmQtN2ZhNjQ4Y2E1MTZiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IlVINUc4NWZiRlY0aUVzR1VZUmRxZnplYlRZUW0yZ0doUzJDbkVnWGNTSmc9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.1.200.108] MIME-Version: 1.0 Subject: Re: [PATCH] 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: Wed, 27 Sep 2017 14:05:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: Wu, Hao A > Sent: Wednesday, September 27, 2017 5:43 AM > To: edk2-devel@lists.01.org > Cc: Wu, Hao A ; Ni, Ruiyu ; > Carsey, Jaben > Subject: [PATCH] ShellPkg/dh: Add the 'dh' dump support for Partition Inf= o > protocol > Importance: High >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D655 >=20 > The dump information will include: > a. The type of the partition (Mbr, Gpt or Other); > b. Whether the partition is an EFI System Partition. >=20 > Cc: Ruiyu Ni > Cc: Jaben Carsey > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Hao Wu > --- > .../UefiHandleParsingLib/UefiHandleParsingLib.c | 68 > ++++++++++++++++++++++ > .../UefiHandleParsingLib/UefiHandleParsingLib.h | 1 + > .../UefiHandleParsingLib/UefiHandleParsingLib.inf | 1 + > .../UefiHandleParsingLib/UefiHandleParsingLib.uni | 6 ++ > 4 files changed, 76 insertions(+) >=20 > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > index d12466c7b0..1a56a699ba 100644 > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > @@ -1933,6 +1933,69 @@ ERROR_EXIT: > return NULL; > } >=20 > +/** > + 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 other= wise. > + > + @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 *GetString; > + CHAR16 *RetVal; > + CONST CHAR16 *PartitionType; > + > + 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 (); > + GetString =3D HiiGetString (mHandleParsingHiiHandle, > STRING_TOKEN(STR_PARTINFO_DUMP_MAIN), NULL); > + if (GetString =3D=3D NULL) { > + return NULL; > + } > + > + switch (PartitionInfo->Type) { > + case PARTITION_TYPE_OTHER: PartitionType =3D L"Other"; break; > + case PARTITION_TYPE_MBR: PartitionType =3D L"Mbr"; break; > + case PARTITION_TYPE_GPT: PartitionType =3D L"Gpt"; break; > + default: return NULL; > + } > + > + RetVal =3D CatSPrint ( > + NULL, > + GetString, > + PartitionType, > + PartitionInfo->System =3D=3D 1 ? L"Yes" : L"No" > + ); This section needs to use proper localization. The strings should be from = UNI files, not hard coded here. > + > + SHELL_FREE_NON_NULL (GetString); > + return RetVal; > +} > + > // > // Put the information on the NT32 protocol GUIDs here so we are not > dependant on the Nt32Pkg > // > @@ -2147,6 +2210,11 @@ STATIC CONST GUID_INFO_BLOCK > mGuidStringList[] =3D { > {STRING_TOKEN(STR_ADAPTER_INFO), > &gEfiAdapterInformationProtocolGuid, > AdapterInformationDumpInformation}, >=20 > // > +// 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 >=20 > #include > #include > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.i= nf > 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 >=20 > [Guids] > gEfiFileInfoGuid ## UNDEFINED > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.u= ni > b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.uni > index f49ca94623..1f2cc4a6f9 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" >=20 > +// Partition Information > +#string STR_PARTITION_INFO #language en-US "PartitionInformation" > + > #string STR_EFI_GLOBAL_VARIABLE #language en-US "EFIGlobalVariable" >=20 > // NT32 emulation > @@ -478,3 +481,6 @@ > = " AttributesSetting : > %%H%s%%N\r\n" > = " Compatibilities : > %%H0x%L016x%%N\r\n" > = " LowestSupportedImageVersion : > %%H0x%08x%%N\r\n" > + > +#string STR_PARTINFO_DUMP_MAIN #language en-US " Partition Type > : %s\r\n" > + " EFI System Parti= tion : %s" > -- > 2.12.0.windows.1