From b6b22b132ada04696a0f7481a12169808c3e2b3e Mon Sep 17 00:00:00 2001 From: jcarsey Date: Thu, 15 Sep 2011 20:10:39 +0000 Subject: ShellPkg: Eliminate loss of high bits in return value from exit command on 64 bit platform. submitted-by: jcarsey reviewed-by: gookboy15a reviewed-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12356 6f19259b-4bc3-4df7-8a09-765794883524 --- .../UefiShellCommandLib/UefiShellCommandLib.c | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'ShellPkg/Library/UefiShellCommandLib') diff --git a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c index 2c1dcd3c13..971294ffd4 100644 --- a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c +++ b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c @@ -26,6 +26,7 @@ STATIC SCRIPT_FILE_LIST mScriptList; STATIC ALIAS_LIST mAliasList; STATIC BOOLEAN mEchoState; STATIC BOOLEAN mExitRequested; +STATIC UINT64 mExitCode; STATIC BOOLEAN mExitScript; STATIC CHAR16 *mProfileList; STATIC UINTN mProfileListSize; @@ -697,12 +698,14 @@ ShellCommandSetEchoState( /** Indicate that the current shell or script should exit. - @param[in] ScriptOnly TRUE if only exiting a script, FALSE othrwise. + @param[in] ScriptOnly TRUE if exiting a script; FALSE otherwise. + @param[in] ErrorCode The 64 bit error code to return. **/ VOID EFIAPI ShellCommandRegisterExit ( - IN BOOLEAN ScriptOnly + IN BOOLEAN ScriptOnly, + IN CONST UINT64 ErrorCode ) { mExitRequested = (BOOLEAN)(!mExitRequested); @@ -711,6 +714,7 @@ ShellCommandRegisterExit ( } else { mExitScript = FALSE; } + mExitCode = ErrorCode; } /** @@ -728,6 +732,21 @@ ShellCommandGetExit ( return (mExitRequested); } +/** + Retrieve the Exit code. + + If ShellCommandGetExit returns FALSE than the return from this is undefined. + + @return the value passed into RegisterExit. +**/ +UINT64 +EFIAPI +ShellCommandGetExitCode ( + VOID + ) +{ + return (mExitCode); +} /** Retrieve the Exit script indicator. -- cgit v1.2.3