]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Application/VConfig/VConfig.c
NetworkPkg: Support print help information using -? command.
[mirror_edk2.git] / NetworkPkg / Application / VConfig / VConfig.c
index ba1720705c0e711e4e9576fa717aff09443beecb..d00a041f492837bd6ea5877457b10299570b0ecf 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Shell application for VLAN configuration.\r
 \r
-  Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
 #include <Library/MemoryAllocationLib.h>\r
 #include <Library/HiiLib.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/UefiHiiServicesLib.h>\r
 #include <Library/NetLib.h>\r
 \r
+//\r
+// String token ID of VConfig command help message text.\r
+//\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringVConfigHelpTokenId = STRING_TOKEN (STR_VCONFIG_HELP);\r
+\r
 #define INVALID_NIC_INDEX   0xffff\r
 #define INVALID_VLAN_ID     0xffff\r
 \r
@@ -608,13 +614,39 @@ VlanConfigMain (
 {\r
   LIST_ENTRY    *List;\r
   CONST CHAR16  *Str;\r
+  EFI_HII_PACKAGE_LIST_HEADER     *PackageList;\r
+  EFI_STATUS    Status;\r
 \r
   mImageHandle = ImageHandle;\r
+  \r
+  //\r
+  // Retrieve HII package list from ImageHandle\r
+  //\r
+  Status = gBS->OpenProtocol (\r
+                  ImageHandle,\r
+                  &gEfiHiiPackageListProtocolGuid,\r
+                  (VOID **) &PackageList,\r
+                  ImageHandle,\r
+                  NULL,\r
+                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
+                  );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
 \r
   //\r
-  // Register our string package to HII database.\r
+  // Publish HII package list to HII Database.\r
   //\r
-  mHiiHandle = HiiAddPackages (&gEfiCallerIdGuid, ImageHandle, VConfigStrings, NULL);\r
+  Status = gHiiDatabase->NewPackageList (\r
+                          gHiiDatabase,\r
+                          PackageList,\r
+                          NULL,\r
+                          &mHiiHandle\r
+                          );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
   if (mHiiHandle == NULL) {\r
     return EFI_SUCCESS;\r
   }\r
@@ -626,11 +658,6 @@ VlanConfigMain (
     goto Exit;\r
   }\r
 \r
-  if (ShellCommandLineGetFlag (List, L"-?")) {\r
-    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_VCONFIG_HELP), mHiiHandle);\r
-    goto Exit;\r
-  }\r
-\r
   if (ShellCommandLineGetFlag (List, L"-l")) {\r
     Str = ShellCommandLineGetValue (List, L"-l");\r
     DisplayVlan ((CHAR16 *) Str);\r