]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: stop using EFI_HANDLE in place of EFI_HII_HANDLE
authorLaszlo Ersek <lersek@redhat.com>
Fri, 6 Sep 2019 21:15:42 +0000 (23:15 +0200)
committerLaszlo Ersek <lersek@redhat.com>
Wed, 9 Oct 2019 07:40:10 +0000 (09:40 +0200)
The UefiShell*CommandsLib instances have constructor functions that do
something like:

  gHiiHandle = HiiAddPackages (...);
  ...
  ShellCommandRegisterCommandName (..., gHiiHandle, ...);

and destructor functions that implement the following pattern:

  HiiRemovePackages (gHiiHandle);

The -- semantic, not functional -- problem is that "gHiiHandle" is
declared with type EFI_HANDLE, and not EFI_HII_HANDLE, in all of these
library instances, even though HiiAddPackages() correctly returns
EFI_HII_HANDLE, and HiiRemovePackages() takes EFI_HII_HANDLE.

Once we fix the type of "gHiiHandle", it causes sort of a butterfly
effect, because it is passed around widely. Track down and update all of
those locations.

The DynamicCommand lib instances use a similar pattern, so they are
affected too.

NOTE: in practice, this patch is a no-op, as both EFI_HII_HANDLE and
EFI_HANDLE are typedefs to (VOID*). However, we shouldn't use EFI_HANDLE
where semantically EFI_HII_HANDLE is passed around.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
25 files changed:
ShellPkg/DynamicCommand/DpDynamicCommand/Dp.c
ShellPkg/DynamicCommand/DpDynamicCommand/Dp.h
ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c
ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h
ShellPkg/Include/Library/ShellCommandLib.h
ShellPkg/Include/Library/ShellLib.h
ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c
ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.h
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.c
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.h
ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.c
ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.h
ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.c
ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.h
ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.c
ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.h
ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.c
ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.h
ShellPkg/Library/UefiShellLib/UefiShellLib.c
ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.c
ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.h
ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.c
ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.h

index 735cdcbcc0186df4938b59be339626d3da0e0b98..4ec4c18348bd97f6fb2a04bf519b37cabfd82693 100644 (file)
@@ -36,7 +36,7 @@ typedef struct {
 \r
 #pragma pack()\r
 \r
-EFI_HANDLE   mDpHiiHandle;\r
+EFI_HII_HANDLE   mDpHiiHandle;\r
 \r
 typedef struct {\r
   EFI_HANDLE    Handle;\r
@@ -924,14 +924,14 @@ Done:
 \r
   @return HII handle.\r
 **/\r
-EFI_HANDLE\r
+EFI_HII_HANDLE\r
 InitializeHiiPackage (\r
   EFI_HANDLE                  ImageHandle\r
   )\r
 {\r
   EFI_STATUS                  Status;\r
   EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
-  EFI_HANDLE                  HiiHandle;\r
+  EFI_HII_HANDLE              HiiHandle;\r
 \r
   //\r
   // Retrieve HII package list from ImageHandle\r
index 43aa4505ee37d4a4b9c2729414bf47e9f3e44856..e446cccde923b705562f8dae18adc67c9547bcae 100644 (file)
@@ -36,7 +36,7 @@
 #include <Library/UefiHiiServicesLib.h>\r
 #include <Library/PerformanceLib.h>\r
 \r
-extern EFI_HANDLE mDpHiiHandle;\r
+extern EFI_HII_HANDLE mDpHiiHandle;\r
 \r
 #define DP_MAJOR_VERSION        2\r
 #define DP_MINOR_VERSION        5\r
@@ -133,7 +133,7 @@ RunDp (
 \r
   @return HII handle.\r
 **/\r
-EFI_HANDLE\r
+EFI_HII_HANDLE\r
 InitializeHiiPackage (\r
   EFI_HANDLE                  ImageHandle\r
   );\r
index 607899032e9da7dafb3c2d6aa1dc8ae77f06cb98..f28da9af723c1c6d0e20451e6f9f6d17a3a274c4 100644 (file)
@@ -11,7 +11,7 @@
 #include "Tftp.h"\r
 \r
 #define IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH 32\r
-EFI_HANDLE   mTftpHiiHandle;\r
+EFI_HII_HANDLE   mTftpHiiHandle;\r
 \r
 /*\r
    Constant strings and definitions related to the message indicating the amount of\r
@@ -1087,14 +1087,14 @@ CheckPacket (
 \r
   @return HII handle.\r
 **/\r
-EFI_HANDLE\r
+EFI_HII_HANDLE\r
 InitializeHiiPackage (\r
   EFI_HANDLE                  ImageHandle\r
   )\r
 {\r
   EFI_STATUS                  Status;\r
   EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
-  EFI_HANDLE                  HiiHandle;\r
+  EFI_HII_HANDLE              HiiHandle;\r
 \r
   //\r
   // Retrieve HII package list from ImageHandle\r
index 7a9ed4724e1f3f2b430f1f2075168709b671c788..4cd7784368133f3515bf223e4d539d6d36e08058 100644 (file)
@@ -30,7 +30,7 @@
 #include <Library/PrintLib.h>\r
 #include <Library/UefiHiiServicesLib.h>\r
 \r
-extern EFI_HANDLE mTftpHiiHandle;\r
+extern EFI_HII_HANDLE mTftpHiiHandle;\r
 \r
 typedef struct {\r
   UINTN  FileSize;\r
@@ -62,7 +62,7 @@ RunTftp (
 \r
   @return HII handle.\r
 **/\r
-EFI_HANDLE\r
+EFI_HII_HANDLE\r
 InitializeHiiPackage (\r
   EFI_HANDLE                  ImageHandle\r
   );\r
index 287bc0eba7f9556f1f38755994533c5ae913a4fd..63fcac82a2de2a387acdeee92db5188ccff6d056 100644 (file)
@@ -136,7 +136,7 @@ ShellCommandRegisterCommandName (
   IN        UINT32                      ShellMinSupportLevel,\r
   IN CONST  CHAR16                      *ProfileName,\r
   IN CONST  BOOLEAN                     CanAffectLE,\r
-  IN CONST  EFI_HANDLE                  HiiHandle,\r
+  IN CONST  EFI_HII_HANDLE              HiiHandle,\r
   IN CONST  EFI_STRING_ID               ManFormatHelp\r
   );\r
 \r
index 31594796cd21cbabae599662f25a1b9f77874b94..1dc41f2cc11bf48b63b80919092a69caaa155ba3 100644 (file)
@@ -965,7 +965,7 @@ ShellPrintHiiEx(
   IN INT32                Row OPTIONAL,\r
   IN CONST CHAR8          *Language OPTIONAL,\r
   IN CONST EFI_STRING_ID  HiiFormatStringId,\r
-  IN CONST EFI_HANDLE     HiiFormatHandle,\r
+  IN CONST EFI_HII_HANDLE HiiFormatHandle,\r
   ...\r
   );\r
 \r
@@ -1260,7 +1260,7 @@ EFIAPI
 ShellPromptForResponseHii (\r
   IN SHELL_PROMPT_REQUEST_TYPE         Type,\r
   IN CONST EFI_STRING_ID  HiiFormatStringId,\r
-  IN CONST EFI_HANDLE     HiiFormatHandle,\r
+  IN CONST EFI_HII_HANDLE HiiFormatHandle,\r
   IN OUT VOID             **Response\r
   );\r
 \r
index f179c410922361e13467a8b9527fbde8cfd6ee82..f62d30ef677a766f3664d646cbc7524c32552c5e 100644 (file)
@@ -14,7 +14,7 @@
 #include <PiDxe.h>\r
 #include <Protocol/FirmwareVolume2.h>\r
 \r
-EFI_HANDLE        mHandleParsingHiiHandle = NULL;\r
+EFI_HII_HANDLE    mHandleParsingHiiHandle = NULL;\r
 HANDLE_INDEX_LIST mHandleList = {{{NULL,NULL},0,0},0};\r
 GUID_INFO_BLOCK   *mGuidList;\r
 UINTN             mGuidListCount;\r
index e8b48b4990ddb6ce7eeb78a3c3325d03dc0ed3e6..f8bcaebe46c855bbaebfd0bf1f5e9215afb265bc 100644 (file)
@@ -38,7 +38,7 @@
 #include <Library/UefiBootManagerLib.h>\r
 \r
 STATIC CONST CHAR16 mFileName[] = L"ShellCommands";\r
-STATIC EFI_HANDLE gShellBcfgHiiHandle  = NULL;\r
+STATIC EFI_HII_HANDLE gShellBcfgHiiHandle  = NULL;\r
 \r
 typedef enum {\r
   BcfgTargetBootOrder    = 0,\r
index 826ced30a8c8c0e2b91be8f29ab29867808fd266..4c48b65fbc1de21f5f200ab06ca5c56714a6a78c 100644 (file)
@@ -554,7 +554,7 @@ ShellCommandRegisterCommandName (
   IN        UINT32                      ShellMinSupportLevel,\r
   IN CONST  CHAR16                      *ProfileName,\r
   IN CONST  BOOLEAN                     CanAffectLE,\r
-  IN CONST  EFI_HANDLE                  HiiHandle,\r
+  IN CONST  EFI_HII_HANDLE              HiiHandle,\r
   IN CONST  EFI_STRING_ID               ManFormatHelp\r
   )\r
 {\r
index 36fe628a8c68fabb9419e47a672b3a1af9adb13a..8ecc2f6bf5a2824b3760a9d1e3ec62a4a7606424 100644 (file)
@@ -46,7 +46,7 @@ typedef struct{
   SHELL_GET_MAN_FILENAME      GetManFileName;\r
   SHELL_RUN_COMMAND           CommandHandler;\r
   BOOLEAN                     LastError;\r
-  EFI_HANDLE                  HiiHandle;\r
+  EFI_HII_HANDLE              HiiHandle;\r
   EFI_STRING_ID               ManFormatHelp;\r
 } SHELL_COMMAND_INTERNAL_LIST_ENTRY;\r
 \r
index ddce3bef5a3022cf4c9461df19ac517bad52e0b3..f918867f47afb00e3a6ed9d74f1d5a5f21147cd4 100644 (file)
@@ -10,7 +10,7 @@
 #include <Library/BcfgCommandLib.h>\r
 \r
 STATIC CONST CHAR16 mFileName[] = L"Debug1Commands";\r
-EFI_HANDLE gShellDebug1HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellDebug1HiiHandle = NULL;\r
 \r
 /**\r
   Gets the debug file name.  This will be used if HII is not working.\r
index 32a933b9f062329a974ef39ded9eae91dbc5e29b..082d488cb283712dc99fa3f7fa1d10b2561aaa8f 100644 (file)
@@ -52,7 +52,7 @@
 #include <Library/HandleParsingLib.h>\r
 \r
 \r
-extern        EFI_HANDLE                        gShellDebug1HiiHandle;\r
+extern        EFI_HII_HANDLE                    gShellDebug1HiiHandle;\r
 \r
 /**\r
   Function returns a system configuration table that is stored in the\r
index 4a05fa9942c458a7583093707ea493a90eccdf59..e2219c62ec25432a8d11a2fb13f072dcc6730101 100644 (file)
@@ -9,7 +9,7 @@
 #include "UefiShellDriver1CommandsLib.h"\r
 \r
 STATIC CONST CHAR16 mFileName[] = L"Driver1Commands";\r
-EFI_HANDLE gShellDriver1HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellDriver1HiiHandle = NULL;\r
 BOOLEAN    gInReconnect = FALSE;\r
 \r
 /**\r
index 7e0b8b0940573e81ce5d10ec3e787ed00c0f3005..ee795c4ce024015a1c6fc70cba110a9fb71a4d26 100644 (file)
@@ -58,7 +58,7 @@
 #include <Library/HandleParsingLib.h>\r
 \r
 \r
-extern        EFI_HANDLE                        gShellDriver1HiiHandle;\r
+extern        EFI_HII_HANDLE                    gShellDriver1HiiHandle;\r
 extern        BOOLEAN                           gInReconnect;\r
 \r
 /**\r
index ecbee99e3b3d1fc5ed83ff71a4fc5e4afc27bc3c..88cddd88ddc4ed7106fe4b7a8da502b84bd1b02a 100644 (file)
@@ -10,7 +10,7 @@
 #include "UefiShellLevel1CommandsLib.h"\r
 \r
 STATIC CONST CHAR16 mFileName[] = L"ShellCommands";\r
-EFI_HANDLE gShellLevel1HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellLevel1HiiHandle = NULL;\r
 \r
 /**\r
   Return the help text filename.  Only used if no HII information found.\r
index 55acdd2b1f95300790eaad0b4fe1e08fe7f99853..f2f9cc5dcf3b22863276ef1e8259a74945cbdcec 100644 (file)
@@ -33,7 +33,7 @@
 #include <Library/HiiLib.h>\r
 #include <Library/FileHandleLib.h>\r
 \r
-extern        EFI_HANDLE                        gShellLevel1HiiHandle;\r
+extern        EFI_HII_HANDLE                    gShellLevel1HiiHandle;\r
 \r
 /**\r
   Function for 'stall' command.\r
index c2a0bb492fbb26b2762d3891289f69d676d758d4..69427637bb879e3f3e4bec5ccfbdddb255325a03 100644 (file)
@@ -29,7 +29,7 @@
 #include "UefiShellLevel2CommandsLib.h"\r
 \r
 CONST CHAR16 mFileName[] = L"ShellCommands";\r
-EFI_HANDLE gShellLevel2HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellLevel2HiiHandle = NULL;\r
 \r
 /**\r
   Get the filename to get help text from if not using HII.\r
index 6d522d4bb4a1ac0b1bcdb914fbe1e075ccc02006..77be6f1a12c776e48bc714dfd53c10ae75974ee6 100644 (file)
@@ -43,7 +43,7 @@
 #include <Library/FileHandleLib.h>\r
 \r
 extern CONST  CHAR16                            mFileName[];\r
-extern        EFI_HANDLE                        gShellLevel2HiiHandle;\r
+extern        EFI_HII_HANDLE                    gShellLevel2HiiHandle;\r
 \r
 /**\r
   Function for 'attrib' command.\r
index 7d2cc4a483710ddefce074ac6a5343fed8dc0a27..ce4afd117aa1c7d8957696da4ffd00b63ea2e03a 100644 (file)
@@ -9,7 +9,7 @@
 #include "UefiShellLevel3CommandsLib.h"\r
 \r
 CONST CHAR16 gShellLevel3FileName[] = L"ShellCommands";\r
-EFI_HANDLE gShellLevel3HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellLevel3HiiHandle = NULL;\r
 \r
 /**\r
   return the filename to get help from is not using HII.\r
index 2d97ae4d3c9175ff3ddd65b4e6cefb36374651a3..c095b9275ed02c453ed66606bbd7124de49c250a 100644 (file)
@@ -32,7 +32,7 @@
 #include <Library/HiiLib.h>\r
 #include <Library/FileHandleLib.h>\r
 \r
-extern EFI_HANDLE gShellLevel3HiiHandle;\r
+extern EFI_HII_HANDLE gShellLevel3HiiHandle;\r
 \r
 /**\r
   Function for 'type' command.\r
index 5be530092e1ba14985773319af6275d73346e93c..835d0f88ca74ea923175ccabe03c53d15881b787 100644 (file)
@@ -2997,7 +2997,7 @@ ShellPrintHiiEx(
   IN INT32                Row OPTIONAL,\r
   IN CONST CHAR8          *Language OPTIONAL,\r
   IN CONST EFI_STRING_ID  HiiFormatStringId,\r
-  IN CONST EFI_HANDLE     HiiFormatHandle,\r
+  IN CONST EFI_HII_HANDLE HiiFormatHandle,\r
   ...\r
   )\r
 {\r
@@ -3609,7 +3609,7 @@ EFIAPI
 ShellPromptForResponseHii (\r
   IN SHELL_PROMPT_REQUEST_TYPE         Type,\r
   IN CONST EFI_STRING_ID  HiiFormatStringId,\r
-  IN CONST EFI_HANDLE     HiiFormatHandle,\r
+  IN CONST EFI_HII_HANDLE HiiFormatHandle,\r
   IN OUT VOID             **Response\r
   )\r
 {\r
index 7e823cabd2fe5830e57c46ecb875cb9d5c7ee2b4..9a2b23fdc5ba97f2fa5abf2c2a6f0b5ac2a040dc 100644 (file)
@@ -8,7 +8,7 @@
 #include "UefiShellNetwork1CommandsLib.h"\r
 \r
 CONST CHAR16 gShellNetwork1FileName[] = L"ShellCommands";\r
-EFI_HANDLE gShellNetwork1HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellNetwork1HiiHandle = NULL;\r
 \r
 /**\r
   return the file name of the help text file if not using HII.\r
index d4ed8c04652d69562126bdf12dffbcfa3722bba9..fddada2efa48acaaf1f282f8c1e799b1d2b38937 100644 (file)
@@ -38,7 +38,7 @@
 #include <Library/DevicePathLib.h>\r
 #include <Library/PrintLib.h>\r
 \r
-extern EFI_HANDLE gShellNetwork1HiiHandle;\r
+extern EFI_HII_HANDLE gShellNetwork1HiiHandle;\r
 \r
 /**\r
   Function for 'ping' command.\r
index 5a7ffbfa19eb08c5f59e6f5385a1ada704334b7a..4aab4295c1ba223742f4ee8777cf59eca18c0a18 100644 (file)
@@ -8,7 +8,7 @@
 #include "UefiShellNetwork2CommandsLib.h"\r
 \r
 CONST CHAR16 gShellNetwork2FileName[] = L"ShellCommands";\r
-EFI_HANDLE gShellNetwork2HiiHandle = NULL;\r
+EFI_HII_HANDLE gShellNetwork2HiiHandle = NULL;\r
 \r
 /**\r
   return the file name of the help text file if not using HII.\r
index 9a5db32f2b7698978a1c410faa427e39928579f8..9ea42cf26d531233093b847c6f88a346c1b9499e 100644 (file)
@@ -27,7 +27,7 @@
 #include <Library/HiiLib.h>\r
 #include <Library/NetLib.h>\r
 \r
-extern EFI_HANDLE gShellNetwork2HiiHandle;\r
+extern EFI_HII_HANDLE gShellNetwork2HiiHandle;\r
 \r
 /**\r
   Function for 'ping6' command.\r