]> 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
 /** @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
 \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/MemoryAllocationLib.h>\r
 #include <Library/HiiLib.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/UefiHiiServicesLib.h>\r
 #include <Library/NetLib.h>\r
 \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
 #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
 {\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
   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
 \r
   //\r
-  // Register our string package to HII database.\r
+  // Publish HII package list to HII Database.\r
   //\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
   if (mHiiHandle == NULL) {\r
     return EFI_SUCCESS;\r
   }\r
@@ -626,11 +658,6 @@ VlanConfigMain (
     goto Exit;\r
   }\r
 \r
     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
   if (ShellCommandLineGetFlag (List, L"-l")) {\r
     Str = ShellCommandLineGetValue (List, L"-l");\r
     DisplayVlan ((CHAR16 *) Str);\r