From 15d8fe1fee188cd7a9ce1b0e32cbe34cc93f1097 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 18 Jul 2018 20:25:25 +0200 Subject: [PATCH] ShellPkg/UefiShellLib: drop DeviceHandle param of ShellOpenFileByDevicePath() The ShellOpenFileByDevicePath() API promises to set the DeviceHandle output parameter to the handle of the filesystem identified by the FilePath input parameter. However, this doesn't actually happen when the UEFI Shell 2.0 method is used (which is basically "always" nowadays). Accordingly, the only caller of ShellOpenFileByDevicePath(), namely ShellOpenFileByName(), defines a (dummy) local DeviceHandle variable just so it can call ShellOpenFileByDevicePath(). Remove the useless output parameter. Cc: Jaben Carsey Cc: Ruiyu Ni Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1008 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek Reviewed-by: Jaben Carsey Reviewed-by: Ruiyu Ni --- ShellPkg/Include/Library/ShellLib.h | 2 -- ShellPkg/Library/UefiShellLib/UefiShellLib.c | 11 ++++------- ShellPkg/Library/UefiShellLib/UefiShellLib.inf | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ShellPkg/Include/Library/ShellLib.h b/ShellPkg/Include/Library/ShellLib.h index e360a67ac7..92fddc50f5 100644 --- a/ShellPkg/Include/Library/ShellLib.h +++ b/ShellPkg/Include/Library/ShellLib.h @@ -89,7 +89,6 @@ ShellSetFileInfo ( @param[in, out] FilePath On input, the device path to the file. On output, the remaining device path. - @param[out] DeviceHandle Pointer to the system device handle. @param[out] FileHandle Pointer to the file handle. @param[in] OpenMode The mode to open the file with. @param[in] Attributes The file's file attributes. @@ -115,7 +114,6 @@ EFI_STATUS EFIAPI ShellOpenFileByDevicePath( IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath, - OUT EFI_HANDLE *DeviceHandle, OUT SHELL_FILE_HANDLE *FileHandle, IN UINT64 OpenMode, IN UINT64 Attributes diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.c b/ShellPkg/Library/UefiShellLib/UefiShellLib.c index 3c24ba1742..18c3be4a8b 100644 --- a/ShellPkg/Library/UefiShellLib/UefiShellLib.c +++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.c @@ -472,7 +472,6 @@ ShellSetFileInfo ( @param FilePath on input the device path to the file. On output the remaining device path. - @param DeviceHandle pointer to the system device handle. @param FileHandle pointer to the file handle. @param OpenMode the mode to open the file with. @param Attributes the file's file attributes. @@ -498,7 +497,6 @@ EFI_STATUS EFIAPI ShellOpenFileByDevicePath( IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath, - OUT EFI_HANDLE *DeviceHandle, OUT SHELL_FILE_HANDLE *FileHandle, IN UINT64 OpenMode, IN UINT64 Attributes @@ -511,8 +509,9 @@ ShellOpenFileByDevicePath( EFI_FILE_PROTOCOL *Handle2; CHAR16 *FnafPathName; UINTN PathLen; + EFI_HANDLE DeviceHandle; - if (FilePath == NULL || FileHandle == NULL || DeviceHandle == NULL) { + if (FilePath == NULL || FileHandle == NULL) { return (EFI_INVALID_PARAMETER); } @@ -538,11 +537,11 @@ ShellOpenFileByDevicePath( // Status = gBS->LocateDevicePath (&gEfiSimpleFileSystemProtocolGuid, FilePath, - DeviceHandle); + &DeviceHandle); if (EFI_ERROR (Status)) { return Status; } - Status = gBS->OpenProtocol(*DeviceHandle, + Status = gBS->OpenProtocol(DeviceHandle, &gEfiSimpleFileSystemProtocolGuid, (VOID**)&EfiSimpleFileSystemProtocol, gImageHandle, @@ -690,7 +689,6 @@ ShellOpenFileByName( IN UINT64 Attributes ) { - EFI_HANDLE DeviceHandle; EFI_DEVICE_PATH_PROTOCOL *FilePath; EFI_STATUS Status; EFI_FILE_INFO *FileInfo; @@ -774,7 +772,6 @@ ShellOpenFileByName( FilePath = mEfiShellEnvironment2->NameToPath ((CHAR16*)FileName); if (FilePath != NULL) { return (ShellOpenFileByDevicePath(&FilePath, - &DeviceHandle, FileHandle, OpenMode, Attributes)); diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.inf b/ShellPkg/Library/UefiShellLib/UefiShellLib.inf index 0df632378f..38d9a4b81f 100644 --- a/ShellPkg/Library/UefiShellLib/UefiShellLib.inf +++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.inf @@ -19,7 +19,7 @@ BASE_NAME = UefiShellLib FILE_GUID = 449D0F00-2148-4a43-9836-F10B3980ECF5 MODULE_TYPE = UEFI_DRIVER - VERSION_STRING = 1.1 + VERSION_STRING = 1.2 LIBRARY_CLASS = ShellLib|UEFI_APPLICATION UEFI_DRIVER DXE_RUNTIME_DRIVER DXE_DRIVER CONSTRUCTOR = ShellLibConstructor DESTRUCTOR = ShellLibDestructor -- 2.39.2