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
This commit is contained in:
jcarsey
2011-09-15 20:10:39 +00:00
parent a0248b0936
commit b6b22b132a
5 changed files with 49 additions and 9 deletions

View File

@ -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.