Add CTRL+C support for ‘devtree’ command.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tapan Shah <tapandshah@hp.com>
Reviewed-By: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15993 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Tapan Shah 2014-08-29 20:34:34 +00:00 committed by jcarsey
parent b7cd151207
commit bbe94d7ab3
1 changed files with 10 additions and 0 deletions

View File

@ -1,6 +1,7 @@
/** @file /** @file
Main file for DevTree shell Driver1 function. Main file for DevTree shell Driver1 function.
Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR> Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -57,6 +58,12 @@ DoDevTreeForHandle(
ChildCount = 0; ChildCount = 0;
ASSERT(TheHandle != NULL); ASSERT(TheHandle != NULL);
if (ShellGetExecutionBreakFlag()) {
ShellStatus = SHELL_ABORTED;
return ShellStatus;
}
// //
// We want controller handles. they will not have LoadedImage or DriverBinding (or others...) // We want controller handles. they will not have LoadedImage or DriverBinding (or others...)
// //
@ -119,6 +126,9 @@ DoDevTreeForHandle(
ParseHandleDatabaseForChildControllers(TheHandle, &ChildCount, &ChildHandleBuffer); ParseHandleDatabaseForChildControllers(TheHandle, &ChildCount, &ChildHandleBuffer);
for (LoopVar = 0 ; LoopVar < ChildCount && ShellStatus == SHELL_SUCCESS; LoopVar++){ for (LoopVar = 0 ; LoopVar < ChildCount && ShellStatus == SHELL_SUCCESS; LoopVar++){
ShellStatus = DoDevTreeForHandle(ChildHandleBuffer[LoopVar], Lang, UseDevPaths, IndentCharCount+2, HiiString); ShellStatus = DoDevTreeForHandle(ChildHandleBuffer[LoopVar], Lang, UseDevPaths, IndentCharCount+2, HiiString);
if (ShellStatus == SHELL_ABORTED) {
break;
}
} }
if (ChildHandleBuffer != NULL) { if (ChildHandleBuffer != NULL) {