From: Chris Phillips Date: Fri, 22 Aug 2014 17:00:49 +0000 (+0000) Subject: ShellPkg: Fixes and updates for the 'devices' command X-Git-Tag: edk2-stable201903~11111 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=c173a7b9d6f239e3a002f4e9c37db98a8f98f771 ShellPkg: Fixes and updates for the 'devices' command - 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 Reviewed-by: Jaben Carsey git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15884 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c b/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c index afabc8a698..f962bf40c0 100644 --- a/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c +++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c @@ -1,6 +1,7 @@ /** @file Main file for devices shell Driver1 function. + (C) Copyright 2012-2014, Hewlett-Packard Development Company, L.P. Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -114,6 +115,7 @@ GetDeviceHandleInfo ( } STATIC CONST SHELL_PARAM_ITEM ParamList[] = { + {L"-sfo", TypeFlag}, {L"-l", TypeValue}, {NULL, TypeMax} }; @@ -146,9 +148,11 @@ ShellCommandRunDevices ( UINTN Children; CHAR16 *Name; CONST CHAR16 *Lang; + BOOLEAN SfoFlag; ShellStatus = SHELL_SUCCESS; Language = NULL; + SfoFlag = FALSE; // // initialize the shell lib (we must be in non-auto-init...) @@ -203,10 +207,13 @@ ShellCommandRunDevices ( // // Print Header - // only in non SFO mode. + // - if (!ShellCommandLineGetFlag(Package, L"-sfo")){ - ShellPrintHiiEx(-1, -1, Language, STRING_TOKEN (STR_DEVICES_HEADER_LINES), gShellDriver1HiiHandle); + if (ShellCommandLineGetFlag (Package, L"-sfo")) { + ShellPrintHiiEx (-1, -1, Language, STRING_TOKEN (STR_GEN_SFO_HEADER), gShellDriver1HiiHandle, L"devices"); + SfoFlag = TRUE; + } else { + ShellPrintHiiEx (-1, -1, Language, STRING_TOKEN (STR_DEVICES_HEADER_LINES), gShellDriver1HiiHandle); } // @@ -225,37 +232,20 @@ ShellCommandRunDevices ( Name = NULL; Status = GetDeviceHandleInfo(*HandleListWalker, &Type, &Cfg, &Diag, &Parents, &Devices, &Children, &Name, Language); if (Name != NULL && (Parents != 0 || Devices != 0 || Children != 0)) { - if (!ShellCommandLineGetFlag(Package, L"-sfo")){ - ShellPrintHiiEx( - -1, - -1, - Language, - STRING_TOKEN(STR_DEVICES_ITEM_LINE), - gShellDriver1HiiHandle, - ConvertHandleToHandleIndex(*HandleListWalker), - Type, - Cfg?L'X':L'-', - Diag?L'X':L'-', - Parents, - Devices, - Children, - Name != NULL ? Name : L""); - } else { - ShellPrintHiiEx( - -1, - -1, - Language, - STRING_TOKEN(STR_DEVICES_ITEM_LINE_SFO), - gShellDriver1HiiHandle, - ConvertHandleToHandleIndex(*HandleListWalker), - Type, - Cfg?L'Y':L'N', - Diag?L'Y':L'N', - Parents, - Devices, - Children, - Name != NULL ? Name : L""); - } + ShellPrintHiiEx ( + -1, + -1, + Language, + SfoFlag?STRING_TOKEN (STR_DEVICES_ITEM_LINE_SFO):STRING_TOKEN (STR_DEVICES_ITEM_LINE), + gShellDriver1HiiHandle, + ConvertHandleToHandleIndex (*HandleListWalker), + Type, + Cfg?(SfoFlag?L'Y':L'X'):(SfoFlag?L'N':L'-'), + Diag?(SfoFlag?L'Y':L'X'):(SfoFlag?L'N':L'-'), + Parents, + Devices, + Children, + Name!=NULL?Name:L""); } if (Name != NULL) { FreePool(Name); diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni index 5655a4bf25..9e6e30080f 100644 Binary files a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni and b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni differ