From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00010702.pphosted.com (mx0a-00010702.pphosted.com [148.163.156.75]) (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 D5E9D21A18AAB for ; Fri, 5 May 2017 05:25:07 -0700 (PDT) Received: from pps.filterd (m0098781.ppops.net [127.0.0.1]) by mx0a-00010702.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v45CL2IO009113; Fri, 5 May 2017 07:25:06 -0500 Received: from ni.com (skprod3.natinst.com [130.164.80.24]) by mx0a-00010702.pphosted.com with ESMTP id 2a72m5agks-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 05 May 2017 07:25:06 -0500 Received: from us-aus-exch1.ni.corp.natinst.com (us-aus-exch1.ni.corp.natinst.com [130.164.68.11]) by us-aus-skprod3.natinst.com (8.16.0.17/8.16.0.17) with ESMTPS id v45CP5Em026528 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 5 May 2017 07:25:05 -0500 Received: from us-aus-exhub1.ni.corp.natinst.com (130.164.68.41) by us-aus-exch1.ni.corp.natinst.com (130.164.68.11) with Microsoft SMTP Server (TLS) id 15.0.1156.6; Fri, 5 May 2017 07:25:05 -0500 Received: from jmw-lm181.ni.corp.natinst.com (130.164.49.7) by us-aus-exhub1.ni.corp.natinst.com (130.164.68.41) with Microsoft SMTP Server id 15.0.1156.6 via Frontend Transport; Fri, 5 May 2017 07:25:05 -0500 Date: Fri, 5 May 2017 07:25:05 -0500 From: Jeff Westfahl X-X-Sender: jwestfah@jmw-lm181 To: "Ni, Ruiyu" CC: Jeff Westfahl , "edk2-devel@lists.01.org" , "Carsey, Jaben" In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5B93E24F@SHSMSX104.ccr.corp.intel.com> Message-ID: References: <1493934784-30012-1-git-send-email-jeff.westfahl@ni.com> <734D49CCEBEEF84792F5B80ED585239D5B93E24F@SHSMSX104.ccr.corp.intel.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-05-05_10:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=30 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=30 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705050126 Subject: Re: [PATCH 0/3] ShellPkg/HandleParsingLib: Show LoadedImageProtocol info 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: Fri, 05 May 2017 12:25:08 -0000 Content-Type: text/plain; charset="US-ASCII"; format=flowed Hi Ray, Thank you for pointing out the ECC tool. These changes look good to me. Reviewed-by: Jeff Westfahl On Fri, 5 May 2017, Ni, Ruiyu wrote: > Jeff, > Firstly great thanks for filling the gap between EDK shell and UEFI shell. > There are many behavior differences between the two, and EDK Shell does carry much more information that > are very helpful for developer debugging. > > Before I check in your patch, could you please kindly review whether the additional change is ok to you. > One change is to fix the ECC failure: "python BaseTools\Source\Python\Ecc\Ecc.py -t ShellPkg\Library\UefiHandleParsingLib -s" > > ShellPkg\Library\UefiHandleParsingLib\UefiHandleParsingLib.c(272): [3002]Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=) Predicate Expression: FileName > ShellPkg\Library\UefiHandleParsingLib\UefiHandleParsingLib.c(272): [3003]A comparison of any pointer to zero must be done via the NULL type Predicate Expression: FileName > > ====patch content=== > .../UefiHandleParsingLib/UefiHandleParsingLib.c | 39 ++++++++-------------- > 1 file changed, 14 insertions(+), 25 deletions(-) > > diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > index 74934f8617..d3ee068eba 100644 > --- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > +++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c > @@ -16,14 +16,14 @@ > > #include "UefiHandleParsingLib.h" > #include "IndustryStandard/Acpi10.h" > -#include "Pi/PiFirmwareFile.h" > -#include "Pi/PiFirmwareVolume.h" > -#include "Protocol/FirmwareVolume2.h" > +#include > +#include > > EFI_HANDLE mHandleParsingHiiHandle = NULL; > HANDLE_INDEX_LIST mHandleList = {{{NULL,NULL},0,0},0}; > GUID_INFO_BLOCK *mGuidList; > UINTN mGuidListCount; > + > /** > Function to find the file name associated with a LoadedImageProtocol. > > @@ -44,37 +44,26 @@ FindLoadedImageFileName ( > UINTN BufferSize; > UINT32 AuthenticationStatus; > > - // > - // Only subtype MEDIA_PIWG_FW_FILE_DP of type MEDIA_DEVICE_PATH is supported. > - // > - if ( (LoadedImage == NULL) > - || (LoadedImage->FilePath == NULL) > - || (LoadedImage->FilePath->Type != MEDIA_DEVICE_PATH) > - || (LoadedImage->FilePath->SubType != MEDIA_PIWG_FW_FILE_DP) > - ) { > - return (NULL); > + if ((LoadedImage == NULL) || (LoadedImage->FilePath == NULL)) { > + return NULL; > } > > NameGuid = EfiGetNameGuidFromFwVolDevicePathNode((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)LoadedImage->FilePath); > > if (NameGuid == NULL) { > - return (NULL); > + return NULL; > } > > // > - // Get the FirmwareVolume2Protocol of the device handle that this image was > - // loaded from. > + // Get the FirmwareVolume2Protocol of the device handle that this image was loaded from. > // > - Status = gBS->HandleProtocol( > - LoadedImage->DeviceHandle, > - &gEfiFirmwareVolume2ProtocolGuid, > - (VOID**)&Fv); > + Status = gBS->HandleProtocol (LoadedImage->DeviceHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID**) &Fv); > > // > // FirmwareVolume2Protocol is PI, and is not required to be available. > // > - if (EFI_ERROR(Status)) { > - return (NULL); > + if (EFI_ERROR (Status)) { > + return NULL; > } > > // > @@ -83,15 +72,15 @@ FindLoadedImageFileName ( > Buffer = NULL; > Status = Fv->ReadSection(Fv, NameGuid, EFI_SECTION_USER_INTERFACE, 0, &Buffer, &BufferSize, &AuthenticationStatus); > > - if (EFI_ERROR(Status)) { > - return (NULL); > + if (EFI_ERROR (Status)) { > + return NULL; > } > > // > // ReadSection returns just the section data, without any section header. For > // a user interface section, the only data is the file name. > // > - return (Buffer); > + return Buffer; > } > > /** > @@ -269,7 +258,7 @@ LoadedImageProtocolDumpInformation( > FileName = FindLoadedImageFileName(LoadedImage); > > RetVal = NULL; > - if (FileName) { > + if (FileName != NULL) { > Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_LI_DUMP_NAME), NULL); > > if (Temp != NULL) { > > Thanks/Ray > >> -----Original Message----- >> From: Jeff Westfahl [mailto:jeff.westfahl@ni.com] >> Sent: Friday, May 5, 2017 5:53 AM >> To: edk2-devel@lists.01.org >> Cc: Jeff Westfahl ; Ni, Ruiyu ; >> Carsey, Jaben >> Subject: [PATCH 0/3] ShellPkg/HandleParsingLib: Show LoadedImageProtocol >> info >> >> In the old shell, 'dh -v' showed some useful information about the file path >> associated with a LoadedImageProtocol that is no longer shown in the modern >> shell. >> >> For example, with the old shell: >> >> Handle D3 (3A552218) >> Image (3A54C918) File:MicrocodeUpdate >> ParentHandle..: 3A666398 >> SystemTable...: 3D2A8F18 >> DeviceHandle..: 3B1C8098 >> FilePath......: FvFile(F3331DE6-4A55-44E4-B767-7453F7A1A021) >> ImageBase.....: 3D650000 - 3D655540 >> ImageSize.....: 5540 >> CodeType......: RT_code >> DataType......: RT_data >> >> compared to the new shell: >> >> D3: 3A552218 >> LoadedImage >> Revision......: 0x00001000 >> ParentHandle..: 3A666398 >> SystemTable...: 3D2A8F18 >> DeviceHandle..: 3B1C8098 >> FilePath......: 3A552298 >> OptionsSize...: 0 >> LoadOptions...: 0 >> ImageBase.....: 3D650000 >> ImageSize.....: 5540 >> CodeType......: EfiRuntimeServicesCode >> DataType......: EfiRuntimeServicesData >> Unload........: 0 >> >> Here is the output for the same handle with this series applied: >> >> D3: 3A552218 >> LoadedImage >> Name..........: MicrocodeUpdate >> Revision......: 0x00001000 >> ParentHandle..: 3A666398 >> SystemTable...: 3D2A8F18 >> DeviceHandle..: 3B1C8098 >> FilePath......: FvFile(F3331DE6-4A55-44E4-B767-7453F7A1A021) >> OptionsSize...: 0 >> LoadOptions...: 0 >> ImageBase.....: 3D650000 >> ImageSize.....: 5540 >> CodeType......: EfiRuntimeServicesCode >> DataType......: EfiRuntimeServicesData >> Unload........: 0 >> >> Cc: Ruiyu Ni >> Cc: Jaben Carsey >> >> Jeff Westfahl (3): >> ShellPkg/HandleParsingLib: Show LoadedImageProtocol file path as text >> ShellPkg/HandleParsingLib: Open LoadedImageProtocol first >> ShellPkg/HandleParsingLib: Show LoadedImageProtocol file name >> >> .../UefiHandleParsingLib/UefiHandleParsingLib.c | 111 >> +++++++++++++++++++-- >> .../UefiHandleParsingLib/UefiHandleParsingLib.uni | 4 +- >> 2 files changed, 104 insertions(+), 11 deletions(-) >> >> -- >> 2.7.4 > >