]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: Fixes and updates for the 'devices' command
authorChris Phillips <chrisp@hp.com>
Fri, 22 Aug 2014 17:00:49 +0000 (17:00 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 22 Aug 2014 17:00:49 +0000 (17:00 +0000)
- Update 'devices -sfo' format to match UEFI Shell 2.1 spec
- Update help output for easier viewing
- Update 'devices' output format for better alignment when there are many device handles:
     T   D
     Y C I
     P F A
CTRL E G G #P #D #C  Device Name
==== = = = == == === =========================================================

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chris Phillips <chrisp@hp.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15884 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c
ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni

index afabc8a6982aef241d7ef096c3f737bf41bef120..f962bf40c056042f43e0a271e67e9925fd319639 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
   Main file for devices shell Driver1 function.\r
 \r
 /** @file\r
   Main file for devices shell Driver1 function.\r
 \r
+  (C) Copyright 2012-2014, Hewlett-Packard Development Company, L.P.\r
   Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -114,6 +115,7 @@ GetDeviceHandleInfo (
 }\r
 \r
 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
 }\r
 \r
 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
+  {L"-sfo", TypeFlag},\r
   {L"-l", TypeValue},\r
   {NULL, TypeMax}\r
   };\r
   {L"-l", TypeValue},\r
   {NULL, TypeMax}\r
   };\r
@@ -146,9 +148,11 @@ ShellCommandRunDevices (
   UINTN               Children;\r
   CHAR16              *Name;\r
   CONST CHAR16        *Lang;\r
   UINTN               Children;\r
   CHAR16              *Name;\r
   CONST CHAR16        *Lang;\r
+  BOOLEAN             SfoFlag;\r
 \r
   ShellStatus         = SHELL_SUCCESS;\r
   Language            = NULL;\r
 \r
   ShellStatus         = SHELL_SUCCESS;\r
   Language            = NULL;\r
+  SfoFlag             = FALSE;\r
 \r
   //\r
   // initialize the shell lib (we must be in non-auto-init...)\r
 \r
   //\r
   // initialize the shell lib (we must be in non-auto-init...)\r
@@ -203,10 +207,13 @@ ShellCommandRunDevices (
 \r
       //\r
       // Print Header\r
 \r
       //\r
       // Print Header\r
-      // only in non SFO mode.\r
+\r
       //\r
       //\r
-      if (!ShellCommandLineGetFlag(Package, L"-sfo")){\r
-        ShellPrintHiiEx(-1, -1, Language, STRING_TOKEN (STR_DEVICES_HEADER_LINES), gShellDriver1HiiHandle);\r
+      if (ShellCommandLineGetFlag (Package, L"-sfo")) {\r
+        ShellPrintHiiEx (-1, -1, Language, STRING_TOKEN (STR_GEN_SFO_HEADER), gShellDriver1HiiHandle, L"devices");\r
+        SfoFlag = TRUE;\r
+      } else {\r
+        ShellPrintHiiEx (-1, -1, Language, STRING_TOKEN (STR_DEVICES_HEADER_LINES), gShellDriver1HiiHandle);\r
       }\r
 \r
       //\r
       }\r
 \r
       //\r
@@ -225,37 +232,20 @@ ShellCommandRunDevices (
         Name = NULL;\r
         Status = GetDeviceHandleInfo(*HandleListWalker, &Type, &Cfg, &Diag, &Parents, &Devices, &Children, &Name, Language);\r
         if (Name != NULL && (Parents != 0 || Devices != 0 || Children != 0)) {\r
         Name = NULL;\r
         Status = GetDeviceHandleInfo(*HandleListWalker, &Type, &Cfg, &Diag, &Parents, &Devices, &Children, &Name, Language);\r
         if (Name != NULL && (Parents != 0 || Devices != 0 || Children != 0)) {\r
-          if (!ShellCommandLineGetFlag(Package, L"-sfo")){\r
-            ShellPrintHiiEx(\r
-              -1,\r
-              -1,\r
-              Language,\r
-              STRING_TOKEN(STR_DEVICES_ITEM_LINE),\r
-              gShellDriver1HiiHandle,\r
-              ConvertHandleToHandleIndex(*HandleListWalker),\r
-              Type,\r
-              Cfg?L'X':L'-',\r
-              Diag?L'X':L'-',\r
-              Parents,\r
-              Devices,\r
-              Children,\r
-              Name != NULL ? Name : L"<UNKNOWN>");\r
-          } else {\r
-            ShellPrintHiiEx(\r
-              -1,\r
-              -1,\r
-              Language,\r
-              STRING_TOKEN(STR_DEVICES_ITEM_LINE_SFO),\r
-              gShellDriver1HiiHandle,\r
-              ConvertHandleToHandleIndex(*HandleListWalker),\r
-              Type,\r
-              Cfg?L'Y':L'N',\r
-              Diag?L'Y':L'N',\r
-              Parents,\r
-              Devices,\r
-              Children,\r
-              Name != NULL ? Name : L"<UNKNOWN>");\r
-          }\r
+          ShellPrintHiiEx (\r
+            -1,\r
+            -1,\r
+            Language,\r
+            SfoFlag?STRING_TOKEN (STR_DEVICES_ITEM_LINE_SFO):STRING_TOKEN (STR_DEVICES_ITEM_LINE),\r
+            gShellDriver1HiiHandle,\r
+            ConvertHandleToHandleIndex (*HandleListWalker),\r
+            Type,\r
+            Cfg?(SfoFlag?L'Y':L'X'):(SfoFlag?L'N':L'-'),\r
+            Diag?(SfoFlag?L'Y':L'X'):(SfoFlag?L'N':L'-'),\r
+            Parents,\r
+            Devices,\r
+            Children,\r
+            Name!=NULL?Name:L"<UNKNOWN>");\r
         }\r
         if (Name != NULL) {\r
           FreePool(Name);\r
         }\r
         if (Name != NULL) {\r
           FreePool(Name);\r
index 5655a4bf2520634fbaefa32c8efe6f2115c401b5..9e6e30080f3ee10a9c37683f327f054faf3aaba2 100644 (file)
Binary files a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni and b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni differ