ShellPkg/UefiShellLevel3: Lower indentation level in MainCmdXXX()

This patch aims to help breaking down the long function present in
the ShellPkg and reduce complexity/nested code and conditions.

Lower the indentation level in the newly created MainCmdXXX()
functions.

Some ASSERT() are removed in Help.c as they check variables
which were initialized a few lines above.

No functional change should be induced by this patch.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
This commit is contained in:
Pierre Gondois 2026-04-28 18:25:08 +02:00 committed by mergify[bot]
parent 8b5c970c55
commit f1f89f454c
8 changed files with 256 additions and 269 deletions

View file

@ -109,6 +109,7 @@ MainCmdCls (
//
if (ShellCommandLineGetFlag (Package, L"-?")) {
ASSERT (FALSE);
return ShellStatus;
} else if (ShellCommandLineGetFlag (Package, L"-sfo")) {
if (ShellCommandLineGetCount (Package) > 1) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
@ -125,55 +126,60 @@ MainCmdCls (
Background
);
}
return ShellStatus;
}
//
// If there are 0 value parameters, clear sceen
//
BackColorStr = ShellCommandLineGetRawValue (Package, 1);
ForeColorStr = ShellCommandLineGetRawValue (Package, 2);
if ((BackColorStr == NULL) && (ForeColorStr == NULL)) {
//
// clear screen
//
gST->ConOut->ClearScreen (gST->ConOut);
return ShellStatus;
} else if (ShellCommandLineGetCount (Package) > 3) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
return SHELL_INVALID_PARAMETER;
}
if (BackColorStr == NULL) {
return ShellStatus;
}
ShellStatus = GetClsColorIndex (BackColorStr, 7, 1, &ColorIndex);
if (ShellStatus != SHELL_SUCCESS) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", BackColorStr);
return ShellStatus;
}
Background = mClsBackgroundColorMap[ColorIndex];
if (ForeColorStr != NULL) {
ShellStatus = GetClsColorIndex (ForeColorStr, 15, 2, &ColorIndex);
if (ShellStatus != SHELL_SUCCESS) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", ForeColorStr);
return ShellStatus;
}
Foreground = mClsForegroundColorMap[ColorIndex];
} else {
//
// If there are 0 value parameters, clear sceen
// Since foreground color is not modified, so retain
// existing foreground color without any change to it.
//
BackColorStr = ShellCommandLineGetRawValue (Package, 1);
ForeColorStr = ShellCommandLineGetRawValue (Package, 2);
if ((BackColorStr == NULL) && (ForeColorStr == NULL)) {
//
// clear screen
//
gST->ConOut->ClearScreen (gST->ConOut);
} else if (ShellCommandLineGetCount (Package) > 3) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
if (BackColorStr != NULL) {
ShellStatus = GetClsColorIndex (BackColorStr, 7, 1, &ColorIndex);
if (ShellStatus != SHELL_SUCCESS) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", BackColorStr);
} else {
Background = mClsBackgroundColorMap[ColorIndex];
if (ForeColorStr != NULL) {
ShellStatus = GetClsColorIndex (ForeColorStr, 15, 2, &ColorIndex);
if (ShellStatus != SHELL_SUCCESS) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", ForeColorStr);
} else {
Foreground = mClsForegroundColorMap[ColorIndex];
}
} else {
//
// Since foreground color is not modified, so retain
// existing foreground color without any change to it.
//
Foreground = gST->ConOut->Mode->Attribute & 0x0F;
}
if (ShellStatus == SHELL_SUCCESS) {
Status = gST->ConOut->SetAttribute (gST->ConOut, (Foreground | Background) & 0x7F);
ASSERT_EFI_ERROR (Status);
Status = gST->ConOut->ClearScreen (gST->ConOut);
ASSERT_EFI_ERROR (Status);
}
}
}
}
Foreground = gST->ConOut->Mode->Attribute & 0x0F;
}
Status = gST->ConOut->SetAttribute (gST->ConOut, (Foreground | Background) & 0x7F);
ASSERT_EFI_ERROR (Status);
Status = gST->ConOut->ClearScreen (gST->ConOut);
ASSERT_EFI_ERROR (Status);
return ShellStatus;
}

View file

@ -27,14 +27,9 @@ MainCmdREcho (
LIST_ENTRY *Package
)
{
SHELL_STATUS ShellStatus;
UINTN ParamCount;
UINTN Size;
CHAR16 *PrintString;
Size = 0;
PrintString = NULL;
ShellStatus = SHELL_SUCCESS;
UINTN ParamCount;
UINTN Size;
CHAR16 *PrintString;
//
// check for "-?"
@ -48,11 +43,13 @@ MainCmdREcho (
// Turn it on
//
ShellCommandSetEchoState (TRUE);
return SHELL_SUCCESS;
} else if (ShellCommandLineGetFlag (Package, L"-off")) {
//
// turn it off
//
ShellCommandSetEchoState (FALSE);
return SHELL_SUCCESS;
} else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
//
// output its current state
@ -62,26 +59,31 @@ MainCmdREcho (
} else {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_ECHO_OFF), gShellLevel3HiiHandle);
}
} else {
//
// print the line
//
for ( ParamCount = 1
; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
; ParamCount++
)
{
StrnCatGrow (&PrintString, &Size, ShellCommandLineGetRawValue (Package, ParamCount), 0);
if (ShellCommandLineGetRawValue (Package, ParamCount+1) != NULL) {
StrnCatGrow (&PrintString, &Size, L" ", 0);
}
}
ShellPrintDefaultEx (L"%s\r\n", PrintString);
SHELL_FREE_NON_NULL (PrintString);
return SHELL_SUCCESS;
}
return ShellStatus;
Size = 0;
PrintString = NULL;
//
// print the line
//
for ( ParamCount = 1
; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
; ParamCount++
)
{
StrnCatGrow (&PrintString, &Size, ShellCommandLineGetRawValue (Package, ParamCount), 0);
if (ShellCommandLineGetRawValue (Package, ParamCount+1) != NULL) {
StrnCatGrow (&PrintString, &Size, L" ", 0);
}
}
ShellPrintDefaultEx (L"%s\r\n", PrintString);
SHELL_FREE_NON_NULL (PrintString);
return SHELL_SUCCESS;
}
/**

View file

@ -21,42 +21,37 @@ MainCmdMtc (
LIST_ENTRY *Package
)
{
EFI_STATUS Status;
SHELL_STATUS ShellStatus;
UINT64 Mtc;
ShellStatus = SHELL_SUCCESS;
EFI_STATUS Status;
UINT64 Mtc;
//
// check for "-?"
//
if (ShellCommandLineGetFlag (Package, L"-?")) {
ASSERT (FALSE);
return SHELL_SUCCESS;
} else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"getmtc");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
// Get the monotonic counter count
//
Status = gBS->GetNextMonotonicCount (&Mtc);
if (Status == EFI_DEVICE_ERROR) {
ShellStatus = SHELL_DEVICE_ERROR;
} else if (Status == EFI_SECURITY_VIOLATION) {
ShellStatus = SHELL_SECURITY_VIOLATION;
} else if (EFI_ERROR (Status)) {
ShellStatus = SHELL_DEVICE_ERROR;
}
//
// print it...
//
if (ShellStatus == SHELL_SUCCESS) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GET_MTC_OUTPUT), gShellLevel3HiiHandle, Mtc);
}
return SHELL_INVALID_PARAMETER;
}
return ShellStatus;
//
// Get the monotonic counter count
//
Status = gBS->GetNextMonotonicCount (&Mtc);
if (Status == EFI_DEVICE_ERROR) {
return SHELL_DEVICE_ERROR;
} else if (Status == EFI_SECURITY_VIOLATION) {
return SHELL_SECURITY_VIOLATION;
} else if (EFI_ERROR (Status)) {
return SHELL_DEVICE_ERROR;
}
//
// print it...
//
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GET_MTC_OUTPUT), gShellLevel3HiiHandle, Mtc);
return SHELL_SUCCESS;
}
/**

View file

@ -394,56 +394,51 @@ MainCmdHelp (
//
// Check for conflicting parameters.
//
if ( ShellCommandLineGetFlag (Package, L"-usage")
&& ShellCommandLineGetFlag (Package, L"-section")
&& (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v"))
)
if (ShellCommandLineGetFlag (Package, L"-usage") &&
ShellCommandLineGetFlag (Package, L"-section") &&
(ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v")))
{
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel3HiiHandle, L"help");
ShellStatus = SHELL_INVALID_PARAMETER;
return SHELL_INVALID_PARAMETER;
} else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"help");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
// Get the command name we are getting help on
//
ASSERT (CommandToGetHelpOn == NULL);
StrnCatGrow (&CommandToGetHelpOn, NULL, ShellCommandLineGetRawValue (Package, 1), 0);
if ((CommandToGetHelpOn == NULL) && ShellCommandLineGetFlag (Package, L"-?")) {
//
// If we dont have a command and we got a simple -?
// we are looking for help on help command.
//
StrnCatGrow (&CommandToGetHelpOn, NULL, L"help", 0);
}
if (CommandToGetHelpOn == NULL) {
StrnCatGrow (&CommandToGetHelpOn, NULL, L"*", 0);
ASSERT (SectionToGetHelpOn == NULL);
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME", 0);
} else {
PrintCommandText = FALSE;
ASSERT (SectionToGetHelpOn == NULL);
//
// Get the section name for the given command name
//
if (ShellCommandLineGetFlag (Package, L"-section")) {
StrnCatGrow (&SectionToGetHelpOn, NULL, ShellCommandLineGetValue (Package, L"-section"), 0);
} else if (ShellCommandLineGetFlag (Package, L"-usage")) {
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS", 0);
} else if (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v")) {
} else {
//
// The output of help <command> will display NAME, SYNOPSIS, OPTIONS, DESCRIPTION, and EXAMPLES sections.
//
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS,OPTIONS,DESCRIPTION,EXAMPLES", 0);
}
}
ShellStatus = PrintMatchingHelp (CommandToGetHelpOn, SectionToGetHelpOn, PrintCommandText);
return SHELL_INVALID_PARAMETER;
}
//
// Get the command name we are getting help on
//
StrnCatGrow (&CommandToGetHelpOn, NULL, ShellCommandLineGetRawValue (Package, 1), 0);
if ((CommandToGetHelpOn == NULL) && ShellCommandLineGetFlag (Package, L"-?")) {
//
// If we dont have a command and we got a simple -?
// we are looking for help on help command.
//
StrnCatGrow (&CommandToGetHelpOn, NULL, L"help", 0);
}
if (CommandToGetHelpOn == NULL) {
StrnCatGrow (&CommandToGetHelpOn, NULL, L"*", 0);
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME", 0);
} else {
PrintCommandText = FALSE;
//
// Get the section name for the given command name
//
if (ShellCommandLineGetFlag (Package, L"-section")) {
StrnCatGrow (&SectionToGetHelpOn, NULL, ShellCommandLineGetValue (Package, L"-section"), 0);
} else if (ShellCommandLineGetFlag (Package, L"-usage")) {
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS", 0);
} else if (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v")) {
} else {
//
// The output of help <command> will display NAME, SYNOPSIS, OPTIONS, DESCRIPTION, and EXAMPLES sections.
//
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS,OPTIONS,DESCRIPTION,EXAMPLES", 0);
}
}
ShellStatus = PrintMatchingHelp (CommandToGetHelpOn, SectionToGetHelpOn, PrintCommandText);
if ((CommandToGetHelpOn != NULL) && (StrCmp (CommandToGetHelpOn, L"*") == 0)) {
//
// If '*' then the command entered was 'Help' without qualifiers, This footer

View file

@ -36,24 +36,25 @@ MainCmdPause (
//
if (ShellCommandLineGetFlag (Package, L"-?")) {
ASSERT (FALSE);
return ShellStatus;
} else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"pause");
ShellStatus = SHELL_INVALID_PARAMETER;
return SHELL_INVALID_PARAMETER;
}
if (!ShellCommandLineGetFlag (Package, L"-q")) {
Status = ShellPromptForResponseHii (ShellPromptResponseTypeQuitContinue, STRING_TOKEN (STR_PAUSE_PROMPT), gShellLevel3HiiHandle, (VOID **)&Resp);
} else {
if (!ShellCommandLineGetFlag (Package, L"-q")) {
Status = ShellPromptForResponseHii (ShellPromptResponseTypeQuitContinue, STRING_TOKEN (STR_PAUSE_PROMPT), gShellLevel3HiiHandle, (VOID **)&Resp);
} else {
Status = ShellPromptForResponse (ShellPromptResponseTypeQuitContinue, NULL, (VOID **)&Resp);
}
Status = ShellPromptForResponse (ShellPromptResponseTypeQuitContinue, NULL, (VOID **)&Resp);
}
if (EFI_ERROR (Status) || (Resp == NULL) || (*Resp == ShellPromptResponseQuit)) {
ShellCommandRegisterExit (TRUE, 0);
ShellStatus = SHELL_ABORTED;
}
if (EFI_ERROR (Status) || (Resp == NULL) || (*Resp == ShellPromptResponseQuit)) {
ShellCommandRegisterExit (TRUE, 0);
ShellStatus = SHELL_ABORTED;
}
if (Resp != NULL) {
FreePool (Resp);
}
if (Resp != NULL) {
FreePool (Resp);
}
return ShellStatus;

View file

@ -224,49 +224,43 @@ MainCmdTouch (
// we insufficient parameters
//
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"touch");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
return SHELL_INVALID_PARAMETER;
}
//
// get a list with each file specified by parameters
// if parameter is a directory then add all the files below it to the list
//
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
; Param != NULL
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
)
{
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, &FileList);
if (EFI_ERROR (Status)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16 *)Param);
return SHELL_NOT_FOUND;
}
//
// get a list with each file specified by parameters
// if parameter is a directory then add all the files below it to the list
// check that we have at least 1 file
//
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
; Param != NULL
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
)
{
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, &FileList);
if (EFI_ERROR (Status)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16 *)Param);
ShellStatus = SHELL_NOT_FOUND;
break;
}
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
continue;
}
//
// make sure we completed the param parsing successfully...
// Also make sure that any previous action was successful
//
if (ShellStatus == SHELL_SUCCESS) {
//
// check that we have at least 1 file
//
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
continue;
} else {
ShellStatus = ProcessFileList (FileList, ShellCommandLineGetFlag (Package, L"-r"));
}
}
ShellStatus = ProcessFileList (FileList, ShellCommandLineGetFlag (Package, L"-r"));
//
// Free the fileList
//
if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
Status = ShellCloseFileMetaArg (&FileList);
ASSERT_EFI_ERROR (Status);
}
//
// Free the fileList
//
Status = ShellCloseFileMetaArg (&FileList);
ASSERT_EFI_ERROR (Status);
FileList = NULL;
FileList = NULL;
if (ShellStatus != SHELL_SUCCESS) {
break;
}
}

View file

@ -255,55 +255,49 @@ MainCmdType (
if (AsciiMode && UnicodeMode) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"type", L"-a & -u");
ShellStatus = SHELL_INVALID_PARAMETER;
return SHELL_INVALID_PARAMETER;
} else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
//
// we insufficient parameters
//
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"type");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
return SHELL_INVALID_PARAMETER;
}
//
// get a list with each file specified by parameters
// if parameter is a directory then add all the files below it to the list
//
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
; Param != NULL
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
)
{
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ, &FileList);
if (EFI_ERROR (Status)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", (CHAR16 *)Param);
return SHELL_NOT_FOUND;
}
//
// get a list with each file specified by parameters
// if parameter is a directory then add all the files below it to the list
// check that we have at least 1 file
//
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
; Param != NULL
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
)
{
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ, &FileList);
if (EFI_ERROR (Status)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", (CHAR16 *)Param);
ShellStatus = SHELL_NOT_FOUND;
break;
}
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"type", Param);
continue;
}
//
// make sure we completed the param parsing successfully...
// Also make sure that any previous action was successful
//
if (ShellStatus == SHELL_SUCCESS) {
//
// check that we have at least 1 file
//
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"type", Param);
continue;
} else {
ShellStatus = ProcessFileList (FileList, AsciiMode, UnicodeMode);
}
}
ShellStatus = ProcessFileList (FileList, AsciiMode, UnicodeMode);
//
// Free the fileList
//
if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
Status = ShellCloseFileMetaArg (&FileList);
}
//
// Free the fileList
//
Status = ShellCloseFileMetaArg (&FileList);
ASSERT_EFI_ERROR (Status);
FileList = NULL;
ASSERT_EFI_ERROR (Status);
FileList = NULL;
if (ShellStatus != SHELL_SUCCESS) {
break;
}
}

View file

@ -48,60 +48,60 @@ MainCmdVer (
// we have too many parameters
//
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"ver");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
if (ShellCommandLineGetFlag (Package, L"-s")) {
if (ShellCommandLineGetFlag (Package, L"-terse") || ShellCommandLineGetFlag (Package, L"-t")) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel3HiiHandle, L"ver", L"-t or -terse", L"-s");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
ShellPrintHiiEx (
0,
gST->ConOut->Mode->CursorRow,
NULL,
STRING_TOKEN (STR_VER_OUTPUT_SIMPLE),
gShellLevel3HiiHandle,
gEfiShellProtocol->MajorVersion,
gEfiShellProtocol->MinorVersion
);
}
return SHELL_INVALID_PARAMETER;
}
if (ShellCommandLineGetFlag (Package, L"-s")) {
if (ShellCommandLineGetFlag (Package, L"-terse") || ShellCommandLineGetFlag (Package, L"-t")) {
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel3HiiHandle, L"ver", L"-t or -terse", L"-s");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
ShellPrintHiiEx (
0,
gST->ConOut->Mode->CursorRow,
NULL,
STRING_TOKEN (STR_VER_OUTPUT_SHELL),
STRING_TOKEN (STR_VER_OUTPUT_SIMPLE),
gShellLevel3HiiHandle,
SupportLevel[Level],
gEfiShellProtocol->MajorVersion,
gEfiShellProtocol->MinorVersion
);
if (!ShellCommandLineGetFlag (Package, L"-terse") && !ShellCommandLineGetFlag (Package, L"-t")) {
ShellPrintHiiDefaultEx (
STRING_TOKEN (STR_VER_OUTPUT_SUPPLIER),
gShellLevel3HiiHandle,
(CHAR16 *)PcdGetPtr (PcdShellSupplier)
);
ShellPrintHiiDefaultEx (
STRING_TOKEN (STR_VER_OUTPUT_UEFI),
gShellLevel3HiiHandle,
(gST->Hdr.Revision&0xffff0000)>>16,
(gST->Hdr.Revision&0x0000ffff),
gST->FirmwareVendor,
gST->FirmwareRevision
);
}
}
} else {
ShellPrintHiiEx (
0,
gST->ConOut->Mode->CursorRow,
NULL,
STRING_TOKEN (STR_VER_OUTPUT_SHELL),
gShellLevel3HiiHandle,
SupportLevel[Level],
gEfiShellProtocol->MajorVersion,
gEfiShellProtocol->MinorVersion
);
if (!ShellCommandLineGetFlag (Package, L"-terse") && !ShellCommandLineGetFlag (Package, L"-t")) {
ShellPrintHiiDefaultEx (
STRING_TOKEN (STR_VER_OUTPUT_SUPPLIER),
gShellLevel3HiiHandle,
(CHAR16 *)PcdGetPtr (PcdShellSupplier)
);
//
// implementation specific support for displaying processor architecture
//
if (ShellCommandLineGetFlag (Package, L"-_pa")) {
ShellPrintDefaultEx (L"%d\r\n", sizeof (UINTN) == sizeof (UINT64) ? 64 : 32);
ShellPrintHiiDefaultEx (
STRING_TOKEN (STR_VER_OUTPUT_UEFI),
gShellLevel3HiiHandle,
(gST->Hdr.Revision&0xffff0000)>>16,
(gST->Hdr.Revision&0x0000ffff),
gST->FirmwareVendor,
gST->FirmwareRevision
);
}
}
//
// implementation specific support for displaying processor architecture
//
if (ShellCommandLineGetFlag (Package, L"-_pa")) {
ShellPrintDefaultEx (L"%d\r\n", sizeof (UINTN) == sizeof (UINT64) ? 64 : 32);
}
return ShellStatus;
}