Revision: 15870
http://sourceforge.net/p/edk2/code/15870
Author: jcarsey
Date: 2014-08-21 20:16:32 +0000 (Thu, 21 Aug 2014)
Log Message:
-----------
ShellPkg: Fixes and updates for the 'drivers' command
- Update 'drivers -sfo' format to match UEFI Shell 2.1 spec
- Update help output for easier viewing
- Update 'drivers' output format for better alignment
T D
Y C I
P F A
DRV VERSION E G G #D #C DRIVER NAME IMAGE PATH
=== ======== = = = === === =================================== ==========
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chris Phillips <[email protected]>
Reviewed-by: Jaben Carsey <[email protected]>
Modified Paths:
--------------
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
Modified: trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
2014-08-21 19:59:49 UTC (rev 15869)
+++ trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
2014-08-21 20:16:32 UTC (rev 15870)
@@ -1,6 +1,7 @@
/** @file
Main file for Drivers shell Driver1 function.
+ (C) Copyright 2012-2014, Hewlett-Packard Development Company, L.P.
Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -14,6 +15,8 @@
#include "UefiShellDriver1CommandsLib.h"
+#define MAX_LEN_DRIVER_NAME 35
+
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
{L"-sfo", TypeFlag},
{L"-l", TypeValue},
@@ -185,15 +188,19 @@
UINTN ChildCount;
UINTN DeviceCount;
CHAR16 *Temp2;
+ CONST CHAR16 *FullDriverName;
+ CHAR16 *TruncatedDriverName;
CHAR16 *FormatString;
UINT32 DriverVersion;
BOOLEAN DriverConfig;
BOOLEAN DriverDiag;
+ BOOLEAN SfoFlag;
ShellStatus = SHELL_SUCCESS;
Status = EFI_SUCCESS;
Language = NULL;
FormatString = NULL;
+ SfoFlag = FALSE;
//
// initialize the shell lib (we must be in non-auto-init...)
@@ -234,10 +241,21 @@
}
}
- if (ShellCommandLineGetFlag(Package, L"-sfo")) {
- FormatString = HiiGetString(gShellDriver1HiiHandle,
STRING_TOKEN(STR_DRIVERS_ITEM_LINE_SFO), Language);
+ if (ShellCommandLineGetFlag (Package, L"-sfo")) {
+ SfoFlag = TRUE;
+ FormatString = HiiGetString (gShellDriver1HiiHandle, STRING_TOKEN
(STR_DRIVERS_ITEM_LINE_SFO), Language);
+ //
+ // print the SFO header
+ //
+ ShellPrintHiiEx (
+ -1,
+ -1,
+ Language,
+ STRING_TOKEN (STR_GEN_SFO_HEADER),
+ gShellDriver1HiiHandle,
+ L"drivers");
} else {
- FormatString = HiiGetString(gShellDriver1HiiHandle,
STRING_TOKEN(STR_DRIVERS_ITEM_LINE), Language);
+ FormatString = HiiGetString (gShellDriver1HiiHandle, STRING_TOKEN
(STR_DRIVERS_ITEM_LINE), Language);
//
// print the header row
//
@@ -245,22 +263,28 @@
-1,
-1,
Language,
- STRING_TOKEN(STR_DRIVERS_HEADER_LINES),
+ STRING_TOKEN (STR_DRIVERS_HEADER_LINES),
gShellDriver1HiiHandle);
}
HandleList = GetHandleListByProtocol(&gEfiDriverBindingProtocolGuid);
for (HandleWalker = HandleList ; HandleWalker != NULL && *HandleWalker
!= NULL ; HandleWalker++){
- ChildCount = 0;
- DeviceCount = 0;
- Status = ParseHandleDatabaseForChildDevices (*HandleWalker,
&ChildCount , NULL);
- Status = PARSE_HANDLE_DATABASE_DEVICES (*HandleWalker,
&DeviceCount, NULL);
- Temp2 = GetDevicePathTextForHandle(*HandleWalker);
- DriverVersion = ReturnDriverVersion(*HandleWalker);
- DriverConfig = ReturnDriverConfig(*HandleWalker);
- DriverDiag = ReturnDriverDiag (*HandleWalker);
- Lang = GetStringNameFromHandle(*HandleWalker, Language);
+ ChildCount = 0;
+ DeviceCount = 0;
+ Status = ParseHandleDatabaseForChildDevices (*HandleWalker,
&ChildCount , NULL);
+ Status = PARSE_HANDLE_DATABASE_DEVICES (*HandleWalker,
&DeviceCount, NULL);
+ Temp2 = GetDevicePathTextForHandle(*HandleWalker);
+ DriverVersion = ReturnDriverVersion(*HandleWalker);
+ DriverConfig = ReturnDriverConfig(*HandleWalker);
+ DriverDiag = ReturnDriverDiag (*HandleWalker);
+ FullDriverName = GetStringNameFromHandle(*HandleWalker, Language);
+ TruncatedDriverName = NULL;
+ if (!SfoFlag && (FullDriverName != NULL)) {
+ TruncatedDriverName = AllocateZeroPool ((MAX_LEN_DRIVER_NAME + 1) *
sizeof (CHAR16));
+ StrnCpy (TruncatedDriverName, FullDriverName, MAX_LEN_DRIVER_NAME);
+ }
+
ShellPrintEx(
-1,
-1,
@@ -272,9 +296,12 @@
DriverDiag?L'Y':L'N',
DeviceCount,
ChildCount,
- Lang,
+ SfoFlag?FullDriverName:TruncatedDriverName,
Temp2==NULL?L"":Temp2
);
+ if (TruncatedDriverName != NULL) {
+ FreePool (TruncatedDriverName);
+ }
if (Temp2 != NULL) {
FreePool(Temp2);
}
Modified:
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
===================================================================
---
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
2014-08-21 19:59:49 UTC (rev 15869)
+++
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
2014-08-21 20:16:32 UTC (rev 15870)
@@ -2,6 +2,8 @@
+ + ---++++++ - -+ --+ --------------+ ---------------------------
-+ --++ ------------------------ This was sent by the SourceForge.net
collaborative development platform, the world's largest Open Source development
site.
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits