ShellPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the ShellPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
c411b485b6
commit
47d20b54f9
@ -20,15 +20,15 @@
|
||||
@retval SHELL_SUCCESS the printout was sucessful
|
||||
**/
|
||||
SHELL_STATUS
|
||||
PrintSingleShellAlias(
|
||||
IN CONST CHAR16 *Alias
|
||||
PrintSingleShellAlias (
|
||||
IN CONST CHAR16 *Alias
|
||||
)
|
||||
{
|
||||
CONST CHAR16 *ConstAliasVal;
|
||||
SHELL_STATUS ShellStatus;
|
||||
BOOLEAN Volatile;
|
||||
CONST CHAR16 *ConstAliasVal;
|
||||
SHELL_STATUS ShellStatus;
|
||||
BOOLEAN Volatile;
|
||||
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ConstAliasVal = gEfiShellProtocol->GetAlias (Alias, &Volatile);
|
||||
if (ConstAliasVal == NULL) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"alias", Alias);
|
||||
@ -37,8 +37,10 @@ PrintSingleShellAlias(
|
||||
if (ShellCommandIsOnAliasList (Alias)) {
|
||||
Volatile = FALSE;
|
||||
}
|
||||
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_ALIAS_OUTPUT), gShellLevel3HiiHandle, !Volatile ? L' ' : L'*', Alias, ConstAliasVal);
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
@ -49,35 +51,38 @@ PrintSingleShellAlias(
|
||||
@return any return code from GetNextVariableName except EFI_NOT_FOUND
|
||||
**/
|
||||
SHELL_STATUS
|
||||
PrintAllShellAlias(
|
||||
PrintAllShellAlias (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
CONST CHAR16 *ConstAllAliasList;
|
||||
CHAR16 *Alias;
|
||||
CHAR16 *Walker;
|
||||
CONST CHAR16 *ConstAllAliasList;
|
||||
CHAR16 *Alias;
|
||||
CHAR16 *Walker;
|
||||
|
||||
ConstAllAliasList = gEfiShellProtocol->GetAlias(NULL, NULL);
|
||||
ConstAllAliasList = gEfiShellProtocol->GetAlias (NULL, NULL);
|
||||
if (ConstAllAliasList == NULL) {
|
||||
return (SHELL_SUCCESS);
|
||||
}
|
||||
Alias = AllocateZeroPool(StrSize(ConstAllAliasList));
|
||||
|
||||
Alias = AllocateZeroPool (StrSize (ConstAllAliasList));
|
||||
if (Alias == NULL) {
|
||||
return (SHELL_OUT_OF_RESOURCES);
|
||||
}
|
||||
Walker = (CHAR16*)ConstAllAliasList;
|
||||
|
||||
Walker = (CHAR16 *)ConstAllAliasList;
|
||||
|
||||
do {
|
||||
CopyMem(Alias, Walker, StrSize(Walker));
|
||||
Walker = StrStr(Alias, L";");
|
||||
CopyMem (Alias, Walker, StrSize (Walker));
|
||||
Walker = StrStr (Alias, L";");
|
||||
if (Walker != NULL) {
|
||||
Walker[0] = CHAR_NULL;
|
||||
Walker = Walker + 1;
|
||||
Walker = Walker + 1;
|
||||
}
|
||||
PrintSingleShellAlias(Alias);
|
||||
|
||||
PrintSingleShellAlias (Alias);
|
||||
} while (Walker != NULL && Walker[0] != CHAR_NULL);
|
||||
|
||||
FreePool(Alias);
|
||||
FreePool (Alias);
|
||||
|
||||
return (SHELL_SUCCESS);
|
||||
}
|
||||
@ -104,19 +109,19 @@ PrintAllShellAlias(
|
||||
@retval SHELL_DEVICE_ERROR Command is null or the empty string.
|
||||
**/
|
||||
SHELL_STATUS
|
||||
ShellLevel3CommandsLibSetAlias(
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Alias,
|
||||
IN BOOLEAN Replace,
|
||||
IN BOOLEAN Volatile
|
||||
ShellLevel3CommandsLibSetAlias (
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Alias,
|
||||
IN BOOLEAN Replace,
|
||||
IN BOOLEAN Volatile
|
||||
)
|
||||
{
|
||||
SHELL_STATUS ShellStatus;
|
||||
EFI_STATUS Status;
|
||||
SHELL_STATUS ShellStatus;
|
||||
EFI_STATUS Status;
|
||||
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
Status = gEfiShellProtocol->SetAlias (Command, Alias, Replace, Volatile);
|
||||
if (EFI_ERROR(Status)) {
|
||||
Status = gEfiShellProtocol->SetAlias (Command, Alias, Replace, Volatile);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (Status == EFI_ACCESS_DENIED) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel3HiiHandle, L"alias");
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
@ -128,14 +133,15 @@ ShellLevel3CommandsLibSetAlias(
|
||||
ShellStatus = SHELL_DEVICE_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-v", TypeFlag},
|
||||
{L"-d", TypeValue},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-v", TypeFlag },
|
||||
{ L"-d", TypeValue },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'alias' command.
|
||||
@ -150,59 +156,59 @@ ShellCommandRunAlias (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
CONST CHAR16 *Param1;
|
||||
CONST CHAR16 *Param2;
|
||||
CONST CHAR16 *ParamStrD;
|
||||
CHAR16 *CleanParam2;
|
||||
BOOLEAN DeleteFlag;
|
||||
BOOLEAN VolatileFlag;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
CONST CHAR16 *Param1;
|
||||
CONST CHAR16 *Param2;
|
||||
CONST CHAR16 *ParamStrD;
|
||||
CHAR16 *CleanParam2;
|
||||
BOOLEAN DeleteFlag;
|
||||
BOOLEAN VolatileFlag;
|
||||
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
CleanParam2 = NULL;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
CleanParam2 = NULL;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = CommandInit();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = CommandInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"alias", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"alias", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
Param1 = ShellCommandLineGetRawValue(Package, 1);
|
||||
Param2 = ShellCommandLineGetRawValue(Package, 2);
|
||||
Param1 = ShellCommandLineGetRawValue (Package, 1);
|
||||
Param2 = ShellCommandLineGetRawValue (Package, 2);
|
||||
|
||||
DeleteFlag = ShellCommandLineGetFlag (Package, L"-d");
|
||||
VolatileFlag = ShellCommandLineGetFlag (Package, L"-v");
|
||||
|
||||
if (Param2 != NULL) {
|
||||
CleanParam2 = AllocateCopyPool (StrSize(Param2), Param2);
|
||||
CleanParam2 = AllocateCopyPool (StrSize (Param2), Param2);
|
||||
if (CleanParam2 == NULL) {
|
||||
ShellCommandLineFreeVarList (Package);
|
||||
return SHELL_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
if (CleanParam2[0] == L'\"' && CleanParam2[StrLen(CleanParam2)-1] == L'\"') {
|
||||
CleanParam2[StrLen(CleanParam2)-1] = L'\0';
|
||||
CopyMem (CleanParam2, CleanParam2 + 1, StrSize(CleanParam2) - sizeof(CleanParam2[0]));
|
||||
if ((CleanParam2[0] == L'\"') && (CleanParam2[StrLen (CleanParam2)-1] == L'\"')) {
|
||||
CleanParam2[StrLen (CleanParam2)-1] = L'\0';
|
||||
CopyMem (CleanParam2, CleanParam2 + 1, StrSize (CleanParam2) - sizeof (CleanParam2[0]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -231,7 +237,7 @@ ShellCommandRunAlias (
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
} else if (DeleteFlag) {
|
||||
if (VolatileFlag || ShellCommandLineGetCount (Package) > 1) {
|
||||
if (VolatileFlag || (ShellCommandLineGetCount (Package) > 1)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"alias");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
@ -269,6 +275,7 @@ ShellCommandRunAlias (
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// free the command line package
|
||||
//
|
||||
|
@ -10,10 +10,10 @@
|
||||
|
||||
#include "UefiShellLevel3CommandsLib.h"
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-sfo", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-sfo", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'cls' command.
|
||||
@ -40,35 +40,35 @@ ShellCommandRunCls (
|
||||
//
|
||||
// Initialize variables
|
||||
//
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ProblemParam = NULL;
|
||||
Background = 0;
|
||||
Foreground = 0;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ProblemParam = NULL;
|
||||
Background = 0;
|
||||
Foreground = 0;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"cls", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"cls", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-sfo")) {
|
||||
if (ShellCommandLineGetCount (Package) > 1) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
|
||||
@ -95,7 +95,7 @@ ShellCommandRunCls (
|
||||
BackColorStr = ShellCommandLineGetRawValue (Package, 1);
|
||||
ForeColorStr = ShellCommandLineGetRawValue (Package, 2);
|
||||
|
||||
if (BackColorStr == NULL && ForeColorStr == NULL) {
|
||||
if ((BackColorStr == NULL) && (ForeColorStr == NULL)) {
|
||||
//
|
||||
// clear screen
|
||||
//
|
||||
@ -211,6 +211,7 @@ ShellCommandRunCls (
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// free the command line package
|
||||
//
|
||||
@ -221,4 +222,3 @@ ShellCommandRunCls (
|
||||
//
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
#include <Library/ShellLib.h>
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-on", TypeFlag},
|
||||
{L"-off", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-on", TypeFlag },
|
||||
{ L"-off", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'echo' command.
|
||||
@ -30,78 +30,81 @@ ShellCommandRunEcho (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
CHAR16 *ProblemParam;
|
||||
UINTN Size;
|
||||
CHAR16 *PrintString;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
CHAR16 *ProblemParam;
|
||||
UINTN Size;
|
||||
CHAR16 *PrintString;
|
||||
|
||||
Size = 0;
|
||||
ProblemParam = NULL;
|
||||
PrintString = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
Size = 0;
|
||||
ProblemParam = NULL;
|
||||
PrintString = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParseEx (ParamList, &Package, &ProblemParam, TRUE, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"echo", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"echo", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
if (ShellCommandLineGetFlag(Package, L"-on")) {
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-on")) {
|
||||
//
|
||||
// Turn it on
|
||||
//
|
||||
ShellCommandSetEchoState(TRUE);
|
||||
} else if (ShellCommandLineGetFlag(Package, L"-off")) {
|
||||
ShellCommandSetEchoState (TRUE);
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-off")) {
|
||||
//
|
||||
// turn it off
|
||||
//
|
||||
ShellCommandSetEchoState(FALSE);
|
||||
} else if (ShellCommandLineGetRawValue(Package, 1) == NULL) {
|
||||
ShellCommandSetEchoState (FALSE);
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
|
||||
//
|
||||
// output its current state
|
||||
//
|
||||
if (ShellCommandGetEchoState()) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_ECHO_ON), gShellLevel3HiiHandle);
|
||||
if (ShellCommandGetEchoState ()) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_ECHO_ON), gShellLevel3HiiHandle);
|
||||
} else {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_ECHO_OFF), gShellLevel3HiiHandle);
|
||||
ShellPrintHiiEx (-1, -1, NULL, 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);
|
||||
; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
|
||||
; ParamCount++
|
||||
)
|
||||
{
|
||||
StrnCatGrow (&PrintString, &Size, ShellCommandLineGetRawValue (Package, ParamCount), 0);
|
||||
if (ShellCommandLineGetRawValue (Package, ParamCount+1) != NULL) {
|
||||
StrnCatGrow (&PrintString, &Size, L" ", 0);
|
||||
}
|
||||
}
|
||||
ShellPrintEx(-1, -1, L"%s\r\n", PrintString);
|
||||
SHELL_FREE_NON_NULL(PrintString);
|
||||
|
||||
ShellPrintEx (-1, -1, L"%s\r\n", PrintString);
|
||||
SHELL_FREE_NON_NULL (PrintString);
|
||||
}
|
||||
|
||||
//
|
||||
@ -112,4 +115,3 @@ ShellCommandRunEcho (
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
@ -24,52 +24,52 @@ ShellCommandRunGetMtc (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINT64 Mtc;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINT64 Mtc;
|
||||
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (EmptyParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"getmtc", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"getmtc", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
} else if (ShellCommandLineGetRawValue(Package, 1) != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"getmtc");
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"getmtc");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
//
|
||||
// Get the monotonic counter count
|
||||
//
|
||||
Status = gBS->GetNextMonotonicCount(&Mtc);
|
||||
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)) {
|
||||
} else if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
@ -77,9 +77,10 @@ ShellCommandRunGetMtc (
|
||||
// print it...
|
||||
//
|
||||
if (ShellStatus == SHELL_SUCCESS) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GET_MTC_OUTPUT), gShellLevel3HiiHandle, Mtc);
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GET_MTC_OUTPUT), gShellLevel3HiiHandle, Mtc);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// free the command line package
|
||||
//
|
||||
@ -88,4 +89,3 @@ ShellCommandRunGetMtc (
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
@ -31,64 +31,65 @@
|
||||
@retval EFI_SUCCESS the operation was successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
LexicalInsertIntoList(
|
||||
IN OUT CHAR16 **DestList,
|
||||
IN OUT UINTN *DestSize,
|
||||
IN CONST CHAR16 *Item
|
||||
LexicalInsertIntoList (
|
||||
IN OUT CHAR16 **DestList,
|
||||
IN OUT UINTN *DestSize,
|
||||
IN CONST CHAR16 *Item
|
||||
)
|
||||
{
|
||||
CHAR16 *NewList;
|
||||
INTN LexicalMatchValue;
|
||||
CHAR16 *LexicalSpot;
|
||||
UINTN SizeOfAddedNameInBytes;
|
||||
CHAR16 *NewList;
|
||||
INTN LexicalMatchValue;
|
||||
CHAR16 *LexicalSpot;
|
||||
UINTN SizeOfAddedNameInBytes;
|
||||
|
||||
//
|
||||
// If there are none, then just return with success
|
||||
//
|
||||
if (Item == NULL || *Item == CHAR_NULL || StrLen(Item)==0) {
|
||||
if ((Item == NULL) || (*Item == CHAR_NULL) || (StrLen (Item) == 0)) {
|
||||
return (EFI_SUCCESS);
|
||||
}
|
||||
|
||||
NewList = *DestList;
|
||||
|
||||
SizeOfAddedNameInBytes = StrSize(Item);
|
||||
NewList = ReallocatePool(*DestSize, (*DestSize) + SizeOfAddedNameInBytes, NewList);
|
||||
(*DestSize) = (*DestSize) + SizeOfAddedNameInBytes;
|
||||
SizeOfAddedNameInBytes = StrSize (Item);
|
||||
NewList = ReallocatePool (*DestSize, (*DestSize) + SizeOfAddedNameInBytes, NewList);
|
||||
(*DestSize) = (*DestSize) + SizeOfAddedNameInBytes;
|
||||
|
||||
//
|
||||
// Find the correct spot in the list
|
||||
//
|
||||
for (LexicalSpot = NewList
|
||||
; LexicalSpot != NULL && LexicalSpot < NewList + (*DestSize)
|
||||
; LexicalSpot += StrLen(LexicalSpot) + 1
|
||||
) {
|
||||
; LexicalSpot != NULL && LexicalSpot < NewList + (*DestSize)
|
||||
; LexicalSpot += StrLen (LexicalSpot) + 1
|
||||
)
|
||||
{
|
||||
//
|
||||
// Get Lexical Comparison Value between PrevCommand and Command list entry
|
||||
//
|
||||
LexicalMatchValue = gUnicodeCollation->StriColl (
|
||||
gUnicodeCollation,
|
||||
(CHAR16 *)LexicalSpot,
|
||||
(CHAR16 *)Item
|
||||
);
|
||||
gUnicodeCollation,
|
||||
(CHAR16 *)LexicalSpot,
|
||||
(CHAR16 *)Item
|
||||
);
|
||||
//
|
||||
// The new item goes before this one.
|
||||
//
|
||||
if (LexicalMatchValue > 0 || StrLen(LexicalSpot) == 0) {
|
||||
if (StrLen(LexicalSpot) != 0) {
|
||||
if ((LexicalMatchValue > 0) || (StrLen (LexicalSpot) == 0)) {
|
||||
if (StrLen (LexicalSpot) != 0) {
|
||||
//
|
||||
// Move this and all other items out of the way
|
||||
//
|
||||
CopyMem(
|
||||
LexicalSpot + (SizeOfAddedNameInBytes/sizeof(CHAR16)),
|
||||
CopyMem (
|
||||
LexicalSpot + (SizeOfAddedNameInBytes/sizeof (CHAR16)),
|
||||
LexicalSpot,
|
||||
(*DestSize) - SizeOfAddedNameInBytes - ((LexicalSpot - NewList) * sizeof(CHAR16))
|
||||
(*DestSize) - SizeOfAddedNameInBytes - ((LexicalSpot - NewList) * sizeof (CHAR16))
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Stick this one in place
|
||||
//
|
||||
StrCpyS(LexicalSpot, SizeOfAddedNameInBytes/sizeof(CHAR16), Item);
|
||||
StrCpyS (LexicalSpot, SizeOfAddedNameInBytes/sizeof (CHAR16), Item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -109,20 +110,22 @@ LexicalInsertIntoList(
|
||||
@retval EFI_SUCCESS the operation was successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
CopyListOfCommandNames(
|
||||
IN OUT CHAR16 **DestList,
|
||||
IN OUT UINTN *DestSize,
|
||||
IN CONST COMMAND_LIST *SourceList
|
||||
CopyListOfCommandNames (
|
||||
IN OUT CHAR16 **DestList,
|
||||
IN OUT UINTN *DestSize,
|
||||
IN CONST COMMAND_LIST *SourceList
|
||||
)
|
||||
{
|
||||
CONST COMMAND_LIST *Node;
|
||||
|
||||
for ( Node = (COMMAND_LIST*)GetFirstNode(&SourceList->Link)
|
||||
; SourceList != NULL && !IsListEmpty(&SourceList->Link) && !IsNull(&SourceList->Link, &Node->Link)
|
||||
; Node = (COMMAND_LIST*)GetNextNode(&SourceList->Link, &Node->Link)
|
||||
) {
|
||||
LexicalInsertIntoList(DestList, DestSize, Node->CommandString);
|
||||
for ( Node = (COMMAND_LIST *)GetFirstNode (&SourceList->Link)
|
||||
; SourceList != NULL && !IsListEmpty (&SourceList->Link) && !IsNull (&SourceList->Link, &Node->Link)
|
||||
; Node = (COMMAND_LIST *)GetNextNode (&SourceList->Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
LexicalInsertIntoList (DestList, DestSize, Node->CommandString);
|
||||
}
|
||||
|
||||
return (EFI_SUCCESS);
|
||||
}
|
||||
|
||||
@ -139,9 +142,9 @@ CopyListOfCommandNames(
|
||||
**/
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
CopyListOfCommandNamesWithDynamic(
|
||||
IN OUT CHAR16** DestList,
|
||||
IN OUT UINTN *DestSize
|
||||
CopyListOfCommandNamesWithDynamic (
|
||||
IN OUT CHAR16 **DestList,
|
||||
IN OUT UINTN *DestSize
|
||||
)
|
||||
{
|
||||
EFI_HANDLE *CommandHandleList;
|
||||
@ -149,7 +152,7 @@ CopyListOfCommandNamesWithDynamic(
|
||||
EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *DynamicCommand;
|
||||
EFI_STATUS Status;
|
||||
|
||||
CommandHandleList = GetHandleListByProtocol(&gEfiShellDynamicCommandProtocolGuid);
|
||||
CommandHandleList = GetHandleListByProtocol (&gEfiShellDynamicCommandProtocolGuid);
|
||||
|
||||
//
|
||||
// If there are none, then just return with success
|
||||
@ -163,25 +166,24 @@ CopyListOfCommandNamesWithDynamic(
|
||||
//
|
||||
// Append those to the list.
|
||||
//
|
||||
for (NextCommand = CommandHandleList ; *NextCommand != NULL && !EFI_ERROR(Status) ; NextCommand++) {
|
||||
Status = gBS->HandleProtocol(
|
||||
*NextCommand,
|
||||
&gEfiShellDynamicCommandProtocolGuid,
|
||||
(VOID **)&DynamicCommand
|
||||
);
|
||||
for (NextCommand = CommandHandleList; *NextCommand != NULL && !EFI_ERROR (Status); NextCommand++) {
|
||||
Status = gBS->HandleProtocol (
|
||||
*NextCommand,
|
||||
&gEfiShellDynamicCommandProtocolGuid,
|
||||
(VOID **)&DynamicCommand
|
||||
);
|
||||
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (EFI_ERROR (Status)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Status = LexicalInsertIntoList(DestList, DestSize, DynamicCommand->CommandName);
|
||||
Status = LexicalInsertIntoList (DestList, DestSize, DynamicCommand->CommandName);
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL(CommandHandleList);
|
||||
SHELL_FREE_NON_NULL (CommandHandleList);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Attempt to print help from a dynamically added command.
|
||||
|
||||
@ -196,11 +198,11 @@ CopyListOfCommandNamesWithDynamic(
|
||||
@retval EFI_DEVICE_ERROR The help data format was incorrect.
|
||||
**/
|
||||
EFI_STATUS
|
||||
PrintDynamicCommandHelp(
|
||||
PrintDynamicCommandHelp (
|
||||
IN CONST CHAR16 *CommandToGetHelpOn,
|
||||
IN CONST CHAR16 *SectionToGetHelpOn,
|
||||
IN BOOLEAN PrintCommandText
|
||||
)
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
BOOLEAN Found;
|
||||
@ -208,11 +210,11 @@ PrintDynamicCommandHelp(
|
||||
EFI_HANDLE *NextCommand;
|
||||
EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *DynamicCommand;
|
||||
|
||||
Status = EFI_NOT_FOUND;
|
||||
Found = FALSE;
|
||||
Status = EFI_NOT_FOUND;
|
||||
Found = FALSE;
|
||||
CommandHandleList = NULL;
|
||||
|
||||
CommandHandleList = GetHandleListByProtocol(&gEfiShellDynamicCommandProtocolGuid);
|
||||
CommandHandleList = GetHandleListByProtocol (&gEfiShellDynamicCommandProtocolGuid);
|
||||
|
||||
if (CommandHandleList == NULL) {
|
||||
//
|
||||
@ -222,13 +224,13 @@ PrintDynamicCommandHelp(
|
||||
}
|
||||
|
||||
for (NextCommand = CommandHandleList; *NextCommand != NULL; NextCommand++) {
|
||||
Status = gBS->HandleProtocol(
|
||||
*NextCommand,
|
||||
&gEfiShellDynamicCommandProtocolGuid,
|
||||
(VOID **)&DynamicCommand
|
||||
);
|
||||
Status = gBS->HandleProtocol (
|
||||
*NextCommand,
|
||||
&gEfiShellDynamicCommandProtocolGuid,
|
||||
(VOID **)&DynamicCommand
|
||||
);
|
||||
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (EFI_ERROR (Status)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -239,36 +241,51 @@ PrintDynamicCommandHelp(
|
||||
break;
|
||||
}
|
||||
|
||||
if ((gUnicodeCollation->MetaiMatch (gUnicodeCollation, (CHAR16 *)DynamicCommand->CommandName, (CHAR16*)CommandToGetHelpOn)) ||
|
||||
(gEfiShellProtocol->GetAlias (CommandToGetHelpOn, NULL) != NULL && (gUnicodeCollation->MetaiMatch (gUnicodeCollation, (CHAR16 *)DynamicCommand->CommandName, (CHAR16*)(gEfiShellProtocol->GetAlias(CommandToGetHelpOn, NULL)))))) {
|
||||
if ((gUnicodeCollation->MetaiMatch (gUnicodeCollation, (CHAR16 *)DynamicCommand->CommandName, (CHAR16 *)CommandToGetHelpOn)) ||
|
||||
((gEfiShellProtocol->GetAlias (CommandToGetHelpOn, NULL) != NULL) && (gUnicodeCollation->MetaiMatch (gUnicodeCollation, (CHAR16 *)DynamicCommand->CommandName, (CHAR16 *)(gEfiShellProtocol->GetAlias (CommandToGetHelpOn, NULL))))))
|
||||
{
|
||||
// Print as Shell Help if in ManPage format.
|
||||
Status = ShellPrintHelp (DynamicCommand->CommandName, SectionToGetHelpOn,
|
||||
PrintCommandText);
|
||||
Status = ShellPrintHelp (
|
||||
DynamicCommand->CommandName,
|
||||
SectionToGetHelpOn,
|
||||
PrintCommandText
|
||||
);
|
||||
if (Status == EFI_DEVICE_ERROR) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_INV),
|
||||
gShellLevel3HiiHandle, DynamicCommand->CommandName);
|
||||
} else if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_NF),
|
||||
gShellLevel3HiiHandle, DynamicCommand->CommandName);
|
||||
ShellPrintHiiEx (
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_HELP_INV),
|
||||
gShellLevel3HiiHandle,
|
||||
DynamicCommand->CommandName
|
||||
);
|
||||
} else if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_HELP_NF),
|
||||
gShellLevel3HiiHandle,
|
||||
DynamicCommand->CommandName
|
||||
);
|
||||
} else {
|
||||
Found = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL(CommandHandleList);
|
||||
SHELL_FREE_NON_NULL (CommandHandleList);
|
||||
|
||||
return (Found ? EFI_SUCCESS : Status);
|
||||
|
||||
}
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-usage", TypeFlag},
|
||||
{L"-section", TypeMaxValue},
|
||||
{L"-verbose", TypeFlag},
|
||||
{L"-v", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-usage", TypeFlag },
|
||||
{ L"-section", TypeMaxValue },
|
||||
{ L"-verbose", TypeFlag },
|
||||
{ L"-v", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'help' command.
|
||||
@ -283,90 +300,91 @@ ShellCommandRunHelp (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
CHAR16 *SortedCommandList;
|
||||
CONST CHAR16 *CurrentCommand;
|
||||
CHAR16 *CommandToGetHelpOn;
|
||||
CHAR16 *SectionToGetHelpOn;
|
||||
CHAR16 *HiiString;
|
||||
BOOLEAN Found;
|
||||
BOOLEAN PrintCommandText;
|
||||
UINTN SortedCommandListSize;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
CHAR16 *SortedCommandList;
|
||||
CONST CHAR16 *CurrentCommand;
|
||||
CHAR16 *CommandToGetHelpOn;
|
||||
CHAR16 *SectionToGetHelpOn;
|
||||
CHAR16 *HiiString;
|
||||
BOOLEAN Found;
|
||||
BOOLEAN PrintCommandText;
|
||||
UINTN SortedCommandListSize;
|
||||
|
||||
PrintCommandText = TRUE;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
CommandToGetHelpOn = NULL;
|
||||
SectionToGetHelpOn = NULL;
|
||||
SortedCommandList = NULL;
|
||||
Found = FALSE;
|
||||
PrintCommandText = TRUE;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
CommandToGetHelpOn = NULL;
|
||||
SectionToGetHelpOn = NULL;
|
||||
SortedCommandList = NULL;
|
||||
Found = FALSE;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = CommandInit();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = CommandInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"help", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"help", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// Check for conflicting parameters.
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-usage")
|
||||
&&ShellCommandLineGetFlag(Package, L"-section")
|
||||
&&(ShellCommandLineGetFlag(Package, L"-verbose") || ShellCommandLineGetFlag(Package, L"-v"))
|
||||
){
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel3HiiHandle, L"help");
|
||||
if ( ShellCommandLineGetFlag (Package, L"-usage")
|
||||
&& ShellCommandLineGetFlag (Package, L"-section")
|
||||
&& (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v"))
|
||||
)
|
||||
{
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel3HiiHandle, L"help");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetRawValue(Package, 2) != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"help");
|
||||
} else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, 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"-?")) {
|
||||
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);
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, L"help", 0);
|
||||
}
|
||||
|
||||
if (CommandToGetHelpOn == NULL) {
|
||||
StrnCatGrow(&CommandToGetHelpOn, NULL, L"*", 0);
|
||||
ASSERT(SectionToGetHelpOn == NULL);
|
||||
StrnCatGrow(&SectionToGetHelpOn, NULL, L"NAME", 0);
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, L"*", 0);
|
||||
ASSERT (SectionToGetHelpOn == NULL);
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME", 0);
|
||||
} else {
|
||||
PrintCommandText = FALSE;
|
||||
ASSERT(SectionToGetHelpOn == NULL);
|
||||
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")) {
|
||||
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.
|
||||
@ -375,25 +393,26 @@ ShellCommandRunHelp (
|
||||
}
|
||||
}
|
||||
|
||||
if (gUnicodeCollation->StriColl(gUnicodeCollation, CommandToGetHelpOn, L"special") == 0) {
|
||||
if (gUnicodeCollation->StriColl (gUnicodeCollation, CommandToGetHelpOn, L"special") == 0) {
|
||||
//
|
||||
// we need info on the special characters
|
||||
//
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HELP_SC_HEADER), gShellLevel3HiiHandle);
|
||||
HiiString = HiiGetString(gShellLevel3HiiHandle, STRING_TOKEN(STR_HELP_SC_DATA), NULL);
|
||||
ShellPrintEx(-1, -1, L"%s", HiiString);
|
||||
FreePool(HiiString);
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_SC_HEADER), gShellLevel3HiiHandle);
|
||||
HiiString = HiiGetString (gShellLevel3HiiHandle, STRING_TOKEN (STR_HELP_SC_DATA), NULL);
|
||||
ShellPrintEx (-1, -1, L"%s", HiiString);
|
||||
FreePool (HiiString);
|
||||
Found = TRUE;
|
||||
} else {
|
||||
SortedCommandList = NULL;
|
||||
SortedCommandList = NULL;
|
||||
SortedCommandListSize = 0;
|
||||
CopyListOfCommandNames(&SortedCommandList, &SortedCommandListSize, ShellCommandGetCommandList(TRUE));
|
||||
CopyListOfCommandNamesWithDynamic(&SortedCommandList, &SortedCommandListSize);
|
||||
CopyListOfCommandNames (&SortedCommandList, &SortedCommandListSize, ShellCommandGetCommandList (TRUE));
|
||||
CopyListOfCommandNamesWithDynamic (&SortedCommandList, &SortedCommandListSize);
|
||||
|
||||
for (CurrentCommand = SortedCommandList
|
||||
; CurrentCommand != NULL && CurrentCommand < SortedCommandList + SortedCommandListSize/sizeof(CHAR16) && *CurrentCommand != CHAR_NULL
|
||||
; CurrentCommand += StrLen(CurrentCommand) + 1
|
||||
) {
|
||||
; CurrentCommand != NULL && CurrentCommand < SortedCommandList + SortedCommandListSize/sizeof (CHAR16) && *CurrentCommand != CHAR_NULL
|
||||
; CurrentCommand += StrLen (CurrentCommand) + 1
|
||||
)
|
||||
{
|
||||
//
|
||||
// Checking execution break flag when print multiple command help information.
|
||||
//
|
||||
@ -401,24 +420,26 @@ ShellCommandRunHelp (
|
||||
break;
|
||||
}
|
||||
|
||||
if ((gUnicodeCollation->MetaiMatch(gUnicodeCollation, (CHAR16*)CurrentCommand, CommandToGetHelpOn)) ||
|
||||
(gEfiShellProtocol->GetAlias(CommandToGetHelpOn, NULL) != NULL && (gUnicodeCollation->MetaiMatch(gUnicodeCollation, (CHAR16*)CurrentCommand, (CHAR16*)(gEfiShellProtocol->GetAlias(CommandToGetHelpOn, NULL)))))) {
|
||||
if ((gUnicodeCollation->MetaiMatch (gUnicodeCollation, (CHAR16 *)CurrentCommand, CommandToGetHelpOn)) ||
|
||||
((gEfiShellProtocol->GetAlias (CommandToGetHelpOn, NULL) != NULL) && (gUnicodeCollation->MetaiMatch (gUnicodeCollation, (CHAR16 *)CurrentCommand, (CHAR16 *)(gEfiShellProtocol->GetAlias (CommandToGetHelpOn, NULL))))))
|
||||
{
|
||||
//
|
||||
// We have a command to look for help on.
|
||||
//
|
||||
Status = ShellPrintHelp(CurrentCommand, SectionToGetHelpOn, PrintCommandText);
|
||||
if (EFI_ERROR(Status)) {
|
||||
Status = ShellPrintHelp (CurrentCommand, SectionToGetHelpOn, PrintCommandText);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// now try to match against the dynamic command list and print help
|
||||
//
|
||||
Status = PrintDynamicCommandHelp (CurrentCommand, SectionToGetHelpOn, PrintCommandText);
|
||||
}
|
||||
|
||||
if (Status == EFI_DEVICE_ERROR) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HELP_INV), gShellLevel3HiiHandle, CurrentCommand);
|
||||
} else if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HELP_NF), gShellLevel3HiiHandle, CurrentCommand);
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_INV), gShellLevel3HiiHandle, CurrentCommand);
|
||||
} else if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_NF), gShellLevel3HiiHandle, CurrentCommand);
|
||||
} else {
|
||||
Found = TRUE;
|
||||
Found = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -427,11 +448,11 @@ ShellCommandRunHelp (
|
||||
// Search the .man file for Shell applications (Shell external commands).
|
||||
//
|
||||
if (!Found) {
|
||||
Status = ShellPrintHelp(CommandToGetHelpOn, SectionToGetHelpOn, FALSE);
|
||||
Status = ShellPrintHelp (CommandToGetHelpOn, SectionToGetHelpOn, FALSE);
|
||||
if (Status == EFI_DEVICE_ERROR) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HELP_INV), gShellLevel3HiiHandle, CommandToGetHelpOn);
|
||||
} else if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HELP_NF), gShellLevel3HiiHandle, CommandToGetHelpOn);
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_INV), gShellLevel3HiiHandle, CommandToGetHelpOn);
|
||||
} else if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_NF), gShellLevel3HiiHandle, CommandToGetHelpOn);
|
||||
} else {
|
||||
Found = TRUE;
|
||||
}
|
||||
@ -449,20 +470,23 @@ ShellCommandRunHelp (
|
||||
}
|
||||
}
|
||||
|
||||
if (CommandToGetHelpOn != NULL && StrCmp(CommandToGetHelpOn, L"*") == 0){
|
||||
if ((CommandToGetHelpOn != NULL) && (StrCmp (CommandToGetHelpOn, L"*") == 0)) {
|
||||
//
|
||||
// If '*' then the command entered was 'Help' without qualifiers, This footer
|
||||
// provides additional info on help switches
|
||||
//
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HELP_FOOTER), gShellLevel3HiiHandle);
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_FOOTER), gShellLevel3HiiHandle);
|
||||
}
|
||||
|
||||
if (CommandToGetHelpOn != NULL) {
|
||||
FreePool(CommandToGetHelpOn);
|
||||
FreePool (CommandToGetHelpOn);
|
||||
}
|
||||
|
||||
if (SectionToGetHelpOn != NULL) {
|
||||
FreePool(SectionToGetHelpOn);
|
||||
FreePool (SectionToGetHelpOn);
|
||||
}
|
||||
SHELL_FREE_NON_NULL(SortedCommandList);
|
||||
|
||||
SHELL_FREE_NON_NULL (SortedCommandList);
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
@ -9,10 +9,10 @@
|
||||
|
||||
#include "UefiShellLevel3CommandsLib.h"
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-q", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-q", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'pause' command.
|
||||
@ -27,27 +27,27 @@ ShellCommandRunPause (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
SHELL_PROMPT_RESPONSE *Resp;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
SHELL_PROMPT_RESPONSE *Resp;
|
||||
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
Resp = NULL;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
Resp = NULL;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = CommandInit();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = CommandInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
if (!gEfiShellProtocol->BatchIsActive()) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_NO_SCRIPT), gShellLevel3HiiHandle, L"pause");
|
||||
if (!gEfiShellProtocol->BatchIsActive ()) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_NO_SCRIPT), gShellLevel3HiiHandle, L"pause");
|
||||
return (SHELL_UNSUPPORTED);
|
||||
}
|
||||
|
||||
@ -55,37 +55,37 @@ ShellCommandRunPause (
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"pause", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"pause", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
} else if (ShellCommandLineGetRawValue(Package, 1) != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"pause");
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"pause");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
if (!ShellCommandLineGetFlag(Package, L"-q")) {
|
||||
Status = ShellPromptForResponseHii(ShellPromptResponseTypeQuitContinue, STRING_TOKEN (STR_PAUSE_PROMPT), gShellLevel3HiiHandle, (VOID**)&Resp);
|
||||
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);
|
||||
if (EFI_ERROR (Status) || (Resp == NULL) || (*Resp == ShellPromptResponseQuit)) {
|
||||
ShellCommandRegisterExit (TRUE, 0);
|
||||
ShellStatus = SHELL_ABORTED;
|
||||
}
|
||||
|
||||
if (Resp != NULL) {
|
||||
FreePool(Resp);
|
||||
FreePool (Resp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,7 +95,5 @@ ShellCommandRunPause (
|
||||
ShellCommandLineFreeVarList (Package);
|
||||
}
|
||||
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
@ -21,27 +21,28 @@
|
||||
**/
|
||||
EFI_STATUS
|
||||
TouchFileByHandle (
|
||||
IN SHELL_FILE_HANDLE Handle
|
||||
IN SHELL_FILE_HANDLE Handle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_FILE_INFO *FileInfo;
|
||||
EFI_STATUS Status;
|
||||
EFI_FILE_INFO *FileInfo;
|
||||
|
||||
FileInfo = gEfiShellProtocol->GetFileInfo(Handle);
|
||||
if ((FileInfo->Attribute & EFI_FILE_READ_ONLY) != 0){
|
||||
FileInfo = gEfiShellProtocol->GetFileInfo (Handle);
|
||||
if ((FileInfo->Attribute & EFI_FILE_READ_ONLY) != 0) {
|
||||
return (EFI_ACCESS_DENIED);
|
||||
}
|
||||
Status = gRT->GetTime(&FileInfo->ModificationTime, NULL);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"gRT->GetTime", Status);
|
||||
|
||||
Status = gRT->GetTime (&FileInfo->ModificationTime, NULL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"gRT->GetTime", Status);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
CopyMem(&FileInfo->LastAccessTime, &FileInfo->ModificationTime, sizeof(EFI_TIME));
|
||||
CopyMem (&FileInfo->LastAccessTime, &FileInfo->ModificationTime, sizeof (EFI_TIME));
|
||||
|
||||
Status = gEfiShellProtocol->SetFileInfo(Handle, FileInfo);
|
||||
Status = gEfiShellProtocol->SetFileInfo (Handle, FileInfo);
|
||||
|
||||
FreePool(FileInfo);
|
||||
FreePool (FileInfo);
|
||||
|
||||
return (Status);
|
||||
}
|
||||
@ -65,24 +66,25 @@ DoTouchByHandle (
|
||||
IN BOOLEAN Rec
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SHELL_FILE_INFO *FileList;
|
||||
EFI_SHELL_FILE_INFO *Walker;
|
||||
CHAR16 *TempSpot;
|
||||
EFI_STATUS Status;
|
||||
EFI_SHELL_FILE_INFO *FileList;
|
||||
EFI_SHELL_FILE_INFO *Walker;
|
||||
CHAR16 *TempSpot;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
FileList = NULL;
|
||||
Walker = NULL;
|
||||
Status = EFI_SUCCESS;
|
||||
FileList = NULL;
|
||||
Walker = NULL;
|
||||
|
||||
if (FS == NULL) {
|
||||
FS = StrnCatGrow(&FS, NULL, Name, 0);
|
||||
FS = StrnCatGrow (&FS, NULL, Name, 0);
|
||||
if (FS != NULL) {
|
||||
TempSpot = StrStr(FS, L"\\");
|
||||
TempSpot = StrStr (FS, L"\\");
|
||||
if (TempSpot != NULL) {
|
||||
*TempSpot = CHAR_NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (FS == NULL) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
@ -90,43 +92,45 @@ DoTouchByHandle (
|
||||
//
|
||||
// do it
|
||||
//
|
||||
Status = TouchFileByHandle(Handle);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Name);
|
||||
Status = TouchFileByHandle (Handle);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Name);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
//
|
||||
// if it's a directory recurse...
|
||||
//
|
||||
if (FileHandleIsDirectory(Handle) == EFI_SUCCESS && Rec) {
|
||||
if ((FileHandleIsDirectory (Handle) == EFI_SUCCESS) && Rec) {
|
||||
//
|
||||
// get each file under this directory
|
||||
//
|
||||
if (EFI_ERROR(gEfiShellProtocol->FindFilesInDir(Handle, &FileList))) {
|
||||
if (EFI_ERROR (gEfiShellProtocol->FindFilesInDir (Handle, &FileList))) {
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// recurse on each
|
||||
//
|
||||
for (Walker = (EFI_SHELL_FILE_INFO *)GetFirstNode(&FileList->Link)
|
||||
; FileList != NULL && !IsNull(&FileList->Link, &Walker->Link) && !EFI_ERROR(Status)
|
||||
; Walker = (EFI_SHELL_FILE_INFO *)GetNextNode(&FileList->Link, &Walker->Link)
|
||||
){
|
||||
if ( (StrCmp(Walker->FileName, L".") != 0)
|
||||
&& (StrCmp(Walker->FileName, L"..") != 0)
|
||||
){
|
||||
for (Walker = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
|
||||
; FileList != NULL && !IsNull (&FileList->Link, &Walker->Link) && !EFI_ERROR (Status)
|
||||
; Walker = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Walker->Link)
|
||||
)
|
||||
{
|
||||
if ( (StrCmp (Walker->FileName, L".") != 0)
|
||||
&& (StrCmp (Walker->FileName, L"..") != 0)
|
||||
)
|
||||
{
|
||||
//
|
||||
// Open the file since we need that handle.
|
||||
//
|
||||
Status = gEfiShellProtocol->OpenFileByName (Walker->FullName, &Walker->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Walker->FullName);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Walker->FullName);
|
||||
Status = EFI_ACCESS_DENIED;
|
||||
} else {
|
||||
Status = DoTouchByHandle(Walker->FullName, FS, Walker->Handle, TRUE);
|
||||
gEfiShellProtocol->CloseFile(Walker->Handle);
|
||||
Status = DoTouchByHandle (Walker->FullName, FS, Walker->Handle, TRUE);
|
||||
gEfiShellProtocol->CloseFile (Walker->Handle);
|
||||
Walker->Handle = NULL;
|
||||
}
|
||||
}
|
||||
@ -135,7 +139,7 @@ DoTouchByHandle (
|
||||
//
|
||||
// free stuff
|
||||
//
|
||||
if (FileList != NULL && EFI_ERROR(gEfiShellProtocol->FreeFileList(&FileList))) {
|
||||
if ((FileList != NULL) && EFI_ERROR (gEfiShellProtocol->FreeFileList (&FileList))) {
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
@ -143,10 +147,10 @@ DoTouchByHandle (
|
||||
return (Status);
|
||||
}
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-r", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-r", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'touch' command.
|
||||
@ -161,69 +165,72 @@ ShellCommandRunTouch (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
CONST CHAR16 *Param;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
EFI_SHELL_FILE_INFO *FileList;
|
||||
EFI_SHELL_FILE_INFO *Node;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
CONST CHAR16 *Param;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
EFI_SHELL_FILE_INFO *FileList;
|
||||
EFI_SHELL_FILE_INFO *Node;
|
||||
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ParamCount = 0;
|
||||
FileList = NULL;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ParamCount = 0;
|
||||
FileList = NULL;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = CommandInit();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = CommandInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"touch", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"touch", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
if (ShellCommandLineGetRawValue(Package, 1) == NULL) {
|
||||
|
||||
if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
|
||||
//
|
||||
// we insufficient parameters
|
||||
//
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"touch");
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"touch");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
//
|
||||
// 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)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16*)Param);
|
||||
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)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16 *)Param);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// make sure we completed the param parsing sucessfully...
|
||||
// Also make sure that any previous action was sucessful
|
||||
@ -232,41 +239,44 @@ ShellCommandRunTouch (
|
||||
//
|
||||
// check that we have at least 1 file
|
||||
//
|
||||
if (FileList == NULL || IsListEmpty(&FileList->Link)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
|
||||
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
|
||||
continue;
|
||||
} else {
|
||||
//
|
||||
// loop through the list and make sure we are not aborting...
|
||||
//
|
||||
for ( Node = (EFI_SHELL_FILE_INFO*)GetFirstNode(&FileList->Link)
|
||||
; !IsNull(&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag()
|
||||
; Node = (EFI_SHELL_FILE_INFO*)GetNextNode(&FileList->Link, &Node->Link)
|
||||
){
|
||||
for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
|
||||
; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
|
||||
; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
//
|
||||
// make sure the file opened ok
|
||||
//
|
||||
if (EFI_ERROR(Node->Status)){
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
|
||||
if (EFI_ERROR (Node->Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
continue;
|
||||
}
|
||||
|
||||
Status = DoTouchByHandle(Node->FullName, NULL, Node->Handle, ShellCommandLineGetFlag(Package, L"-r"));
|
||||
if (EFI_ERROR(Status) && Status != EFI_ACCESS_DENIED) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
|
||||
Status = DoTouchByHandle (Node->FullName, NULL, Node->Handle, ShellCommandLineGetFlag (Package, L"-r"));
|
||||
if (EFI_ERROR (Status) && (Status != EFI_ACCESS_DENIED)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"touch", Node->FileName);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Free the fileList
|
||||
//
|
||||
if (FileList != NULL && !IsListEmpty(&FileList->Link)) {
|
||||
Status = ShellCloseFileMetaArg(&FileList);
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
|
||||
Status = ShellCloseFileMetaArg (&FileList);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
|
||||
FileList = NULL;
|
||||
}
|
||||
}
|
||||
@ -277,10 +287,9 @@ ShellCommandRunTouch (
|
||||
ShellCommandLineFreeVarList (Package);
|
||||
}
|
||||
|
||||
if (ShellGetExecutionBreakFlag()) {
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
return (SHELL_ABORTED);
|
||||
}
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
@ -25,9 +25,9 @@
|
||||
**/
|
||||
EFI_STATUS
|
||||
TypeFileByHandle (
|
||||
IN SHELL_FILE_HANDLE Handle,
|
||||
IN BOOLEAN Ascii,
|
||||
IN BOOLEAN UCS2
|
||||
IN SHELL_FILE_HANDLE Handle,
|
||||
IN BOOLEAN Ascii,
|
||||
IN BOOLEAN UCS2
|
||||
)
|
||||
{
|
||||
UINTN ReadSize;
|
||||
@ -39,25 +39,25 @@ TypeFileByHandle (
|
||||
CHAR16 AsciiChar;
|
||||
CHAR16 Ucs2Char;
|
||||
|
||||
ReadSize = PcdGet32(PcdShellFileOperationSize);
|
||||
AllocatedBuffer = AllocateZeroPool(ReadSize);
|
||||
ReadSize = PcdGet32 (PcdShellFileOperationSize);
|
||||
AllocatedBuffer = AllocateZeroPool (ReadSize);
|
||||
if (AllocatedBuffer == NULL) {
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
|
||||
Status = ShellSetFilePosition(Handle, 0);
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellSetFilePosition (Handle, 0);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
while (ReadSize == ((UINTN)PcdGet32(PcdShellFileOperationSize))) {
|
||||
while (ReadSize == ((UINTN)PcdGet32 (PcdShellFileOperationSize))) {
|
||||
Buffer = AllocatedBuffer;
|
||||
ZeroMem(Buffer, ReadSize);
|
||||
Status = ShellReadFile(Handle, &ReadSize, Buffer);
|
||||
if (EFI_ERROR(Status)){
|
||||
ZeroMem (Buffer, ReadSize);
|
||||
Status = ShellReadFile (Handle, &ReadSize, Buffer);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!(Ascii|UCS2)) {
|
||||
if (*(UINT16*)Buffer == gUnicodeFileTag) {
|
||||
if (*(UINT16 *)Buffer == gUnicodeFileTag) {
|
||||
UCS2 = TRUE;
|
||||
} else {
|
||||
Ascii = TRUE;
|
||||
@ -66,20 +66,21 @@ TypeFileByHandle (
|
||||
|
||||
if (Ascii) {
|
||||
LoopSize = ReadSize;
|
||||
for (LoopVar = 0 ; LoopVar < LoopSize ; LoopVar++) {
|
||||
for (LoopVar = 0; LoopVar < LoopSize; LoopVar++) {
|
||||
//
|
||||
// The valid range of ASCII characters is 0x20-0x7E.
|
||||
// Display "." when there is an invalid character.
|
||||
//
|
||||
AsciiChar = CHAR_NULL;
|
||||
AsciiChar = ((CHAR8*)Buffer)[LoopVar];
|
||||
if (AsciiChar == '\r' || AsciiChar == '\n') {
|
||||
AsciiChar = ((CHAR8 *)Buffer)[LoopVar];
|
||||
if ((AsciiChar == '\r') || (AsciiChar == '\n')) {
|
||||
//
|
||||
// Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
|
||||
// characters to be displayed as is.
|
||||
//
|
||||
if ((AsciiChar == '\n' && LoopVar == 0) ||
|
||||
(AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
|
||||
if (((AsciiChar == '\n') && (LoopVar == 0)) ||
|
||||
((AsciiChar == '\n') && (((CHAR8 *)Buffer)[LoopVar-1] != '\r')))
|
||||
{
|
||||
//
|
||||
// In case file begin with single line Feed or Line Feed (0xA) is
|
||||
// encountered & Carriage Return (0xD) was not previous character,
|
||||
@ -93,37 +94,39 @@ TypeFileByHandle (
|
||||
//
|
||||
// For all other characters which are not printable, display '.'
|
||||
//
|
||||
if (AsciiChar < 0x20 || AsciiChar >= 0x7F) {
|
||||
if ((AsciiChar < 0x20) || (AsciiChar >= 0x7F)) {
|
||||
AsciiChar = '.';
|
||||
}
|
||||
}
|
||||
|
||||
ShellPrintEx (-1, -1, L"%c", AsciiChar);
|
||||
}
|
||||
} else {
|
||||
if (*(UINT16*)Buffer == gUnicodeFileTag) {
|
||||
if (*(UINT16 *)Buffer == gUnicodeFileTag) {
|
||||
//
|
||||
// For unicode files, skip displaying the byte order marker.
|
||||
//
|
||||
Buffer = ((UINT16*)Buffer) + 1;
|
||||
Buffer = ((UINT16 *)Buffer) + 1;
|
||||
LoopSize = (ReadSize / (sizeof (CHAR16))) - 1;
|
||||
} else {
|
||||
LoopSize = ReadSize / (sizeof (CHAR16));
|
||||
}
|
||||
|
||||
for (LoopVar = 0 ; LoopVar < LoopSize ; LoopVar++) {
|
||||
for (LoopVar = 0; LoopVar < LoopSize; LoopVar++) {
|
||||
//
|
||||
// An invalid range of characters is 0x0-0x1F.
|
||||
// Display "." when there is an invalid character.
|
||||
//
|
||||
Ucs2Char = CHAR_NULL;
|
||||
Ucs2Char = ((CHAR16*)Buffer)[LoopVar];
|
||||
if (Ucs2Char == '\r' || Ucs2Char == '\n') {
|
||||
Ucs2Char = ((CHAR16 *)Buffer)[LoopVar];
|
||||
if ((Ucs2Char == '\r') || (Ucs2Char == '\n')) {
|
||||
//
|
||||
// Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
|
||||
// characters to be displayed as is.
|
||||
//
|
||||
if ((Ucs2Char == '\n' && LoopVar == 0) ||
|
||||
(Ucs2Char == '\n' && ((CHAR16*)Buffer)[LoopVar-1] != '\r')) {
|
||||
if (((Ucs2Char == '\n') && (LoopVar == 0)) ||
|
||||
((Ucs2Char == '\n') && (((CHAR16 *)Buffer)[LoopVar-1] != '\r')))
|
||||
{
|
||||
//
|
||||
// In case file begin with single line Feed or Line Feed (0xA) is
|
||||
// encountered & Carriage Return (0xD) was not previous character,
|
||||
@ -133,31 +136,32 @@ TypeFileByHandle (
|
||||
ShellPrintEx (-1, -1, L"\r\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else if (Ucs2Char < 0x20) {
|
||||
} else if (Ucs2Char < 0x20) {
|
||||
//
|
||||
// For all other characters which are not printable, display '.'
|
||||
//
|
||||
Ucs2Char = L'.';
|
||||
}
|
||||
|
||||
ShellPrintEx (-1, -1, L"%c", Ucs2Char);
|
||||
}
|
||||
}
|
||||
|
||||
if (ShellGetExecutionBreakFlag()) {
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
FreePool (AllocatedBuffer);
|
||||
ShellPrintEx (-1, -1, L"\r\n");
|
||||
return (Status);
|
||||
}
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-a", TypeFlag},
|
||||
{L"-u", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-a", TypeFlag },
|
||||
{ L"-u", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'type' command.
|
||||
@ -172,77 +176,80 @@ ShellCommandRunType (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
CONST CHAR16 *Param;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
EFI_SHELL_FILE_INFO *FileList;
|
||||
EFI_SHELL_FILE_INFO *Node;
|
||||
BOOLEAN AsciiMode;
|
||||
BOOLEAN UnicodeMode;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
CONST CHAR16 *Param;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
EFI_SHELL_FILE_INFO *FileList;
|
||||
EFI_SHELL_FILE_INFO *Node;
|
||||
BOOLEAN AsciiMode;
|
||||
BOOLEAN UnicodeMode;
|
||||
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ParamCount = 0;
|
||||
FileList = NULL;
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
ParamCount = 0;
|
||||
FileList = NULL;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = CommandInit();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = CommandInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"type", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"type", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
AsciiMode = ShellCommandLineGetFlag(Package, L"-a");
|
||||
UnicodeMode = ShellCommandLineGetFlag(Package, L"-u");
|
||||
|
||||
AsciiMode = ShellCommandLineGetFlag (Package, L"-a");
|
||||
UnicodeMode = ShellCommandLineGetFlag (Package, L"-u");
|
||||
|
||||
if (AsciiMode && UnicodeMode) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"type", L"-a & -u");
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"type", L"-a & -u");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetRawValue(Package, 1) == NULL) {
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
|
||||
//
|
||||
// we insufficient parameters
|
||||
//
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"type");
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"type");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
//
|
||||
// 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)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", (CHAR16*)Param);
|
||||
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)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", (CHAR16 *)Param);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// make sure we completed the param parsing sucessfully...
|
||||
// Also make sure that any previous action was sucessful
|
||||
@ -251,27 +258,27 @@ ShellCommandRunType (
|
||||
//
|
||||
// check that we have at least 1 file
|
||||
//
|
||||
if (FileList == NULL || IsListEmpty(&FileList->Link)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"type", Param);
|
||||
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"type", Param);
|
||||
continue;
|
||||
} else {
|
||||
//
|
||||
// loop through the list and make sure we are not aborting...
|
||||
//
|
||||
for ( Node = (EFI_SHELL_FILE_INFO*)GetFirstNode(&FileList->Link)
|
||||
; !IsNull(&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag()
|
||||
; Node = (EFI_SHELL_FILE_INFO*)GetNextNode(&FileList->Link, &Node->Link)
|
||||
){
|
||||
|
||||
if (ShellGetExecutionBreakFlag()) {
|
||||
for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
|
||||
; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
|
||||
; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// make sure the file opened ok
|
||||
//
|
||||
if (EFI_ERROR(Node->Status)){
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", Node->FileName);
|
||||
if (EFI_ERROR (Node->Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", Node->FileName);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
continue;
|
||||
}
|
||||
@ -279,8 +286,8 @@ ShellCommandRunType (
|
||||
//
|
||||
// make sure its not a directory
|
||||
//
|
||||
if (FileHandleIsDirectory(Node->Handle) == EFI_SUCCESS) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_IS_DIR), gShellLevel3HiiHandle, L"type", Node->FileName);
|
||||
if (FileHandleIsDirectory (Node->Handle) == EFI_SUCCESS) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_IS_DIR), gShellLevel3HiiHandle, L"type", Node->FileName);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
continue;
|
||||
}
|
||||
@ -289,21 +296,24 @@ ShellCommandRunType (
|
||||
// do it
|
||||
//
|
||||
Status = TypeFileByHandle (Node->Handle, AsciiMode, UnicodeMode);
|
||||
if (EFI_ERROR(Status)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_TYP_ERROR), gShellLevel3HiiHandle, L"type", Node->FileName);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_TYP_ERROR), gShellLevel3HiiHandle, L"type", Node->FileName);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
ASSERT(ShellStatus == SHELL_SUCCESS);
|
||||
|
||||
ASSERT (ShellStatus == SHELL_SUCCESS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Free the fileList
|
||||
//
|
||||
if (FileList != NULL && !IsListEmpty(&FileList->Link)) {
|
||||
Status = ShellCloseFileMetaArg(&FileList);
|
||||
if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
|
||||
Status = ShellCloseFileMetaArg (&FileList);
|
||||
}
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FileList = NULL;
|
||||
}
|
||||
}
|
||||
@ -314,10 +324,9 @@ ShellCommandRunType (
|
||||
ShellCommandLineFreeVarList (Package);
|
||||
}
|
||||
|
||||
if (ShellGetExecutionBreakFlag()) {
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
return (SHELL_ABORTED);
|
||||
}
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
@ -8,15 +8,15 @@
|
||||
**/
|
||||
#include "UefiShellLevel3CommandsLib.h"
|
||||
|
||||
CONST CHAR16 gShellLevel3FileName[] = L"ShellCommands";
|
||||
EFI_HII_HANDLE gShellLevel3HiiHandle = NULL;
|
||||
CONST CHAR16 gShellLevel3FileName[] = L"ShellCommands";
|
||||
EFI_HII_HANDLE gShellLevel3HiiHandle = NULL;
|
||||
|
||||
/**
|
||||
return the filename to get help from is not using HII.
|
||||
|
||||
@retval The filename.
|
||||
**/
|
||||
CONST CHAR16*
|
||||
CONST CHAR16 *
|
||||
EFIAPI
|
||||
ShellCommandGetManFileNameLevel3 (
|
||||
VOID
|
||||
@ -47,7 +47,7 @@ ShellLevel3CommandsLibConstructor (
|
||||
//
|
||||
// if shell level is less than 3 do nothing
|
||||
//
|
||||
if (PcdGet8(PcdShellSupportLevel) < 3) {
|
||||
if (PcdGet8 (PcdShellSupportLevel) < 3) {
|
||||
return (EFI_SUCCESS);
|
||||
}
|
||||
|
||||
@ -55,22 +55,23 @@ ShellLevel3CommandsLibConstructor (
|
||||
if (gShellLevel3HiiHandle == NULL) {
|
||||
return (EFI_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
//
|
||||
// install our shell command handlers that are always installed
|
||||
//
|
||||
// Note: that Time, Timezone, and Date are part of level 2 library
|
||||
//
|
||||
ShellCommandRegisterCommandName(L"type", ShellCommandRunType , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_TYPE));
|
||||
ShellCommandRegisterCommandName(L"touch", ShellCommandRunTouch , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_TOUCH));
|
||||
ShellCommandRegisterCommandName(L"ver", ShellCommandRunVer , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_VER));
|
||||
ShellCommandRegisterCommandName(L"alias", ShellCommandRunAlias , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_ALIAS));
|
||||
ShellCommandRegisterCommandName(L"cls", ShellCommandRunCls , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_CLS));
|
||||
ShellCommandRegisterCommandName(L"echo", ShellCommandRunEcho , ShellCommandGetManFileNameLevel3, 3, L"", FALSE, gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_ECHO));
|
||||
ShellCommandRegisterCommandName(L"pause", ShellCommandRunPause , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_PAUSE));
|
||||
ShellCommandRegisterCommandName(L"getmtc", ShellCommandRunGetMtc , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_GETMTC));
|
||||
ShellCommandRegisterCommandName(L"help", ShellCommandRunHelp , ShellCommandGetManFileNameLevel3, 3, L"", TRUE , gShellLevel3HiiHandle, STRING_TOKEN(STR_GET_HELP_HELP));
|
||||
ShellCommandRegisterCommandName (L"type", ShellCommandRunType, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_TYPE));
|
||||
ShellCommandRegisterCommandName (L"touch", ShellCommandRunTouch, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_TOUCH));
|
||||
ShellCommandRegisterCommandName (L"ver", ShellCommandRunVer, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_VER));
|
||||
ShellCommandRegisterCommandName (L"alias", ShellCommandRunAlias, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_ALIAS));
|
||||
ShellCommandRegisterCommandName (L"cls", ShellCommandRunCls, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_CLS));
|
||||
ShellCommandRegisterCommandName (L"echo", ShellCommandRunEcho, ShellCommandGetManFileNameLevel3, 3, L"", FALSE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_ECHO));
|
||||
ShellCommandRegisterCommandName (L"pause", ShellCommandRunPause, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_PAUSE));
|
||||
ShellCommandRegisterCommandName (L"getmtc", ShellCommandRunGetMtc, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_GETMTC));
|
||||
ShellCommandRegisterCommandName (L"help", ShellCommandRunHelp, ShellCommandGetManFileNameLevel3, 3, L"", TRUE, gShellLevel3HiiHandle, STRING_TOKEN (STR_GET_HELP_HELP));
|
||||
|
||||
ShellCommandRegisterAlias(L"type", L"cat");
|
||||
ShellCommandRegisterAlias (L"type", L"cat");
|
||||
|
||||
return (EFI_SUCCESS);
|
||||
}
|
||||
@ -89,7 +90,8 @@ ShellLevel3CommandsLibDestructor (
|
||||
)
|
||||
{
|
||||
if (gShellLevel3HiiHandle != NULL) {
|
||||
HiiRemovePackages(gShellLevel3HiiHandle);
|
||||
HiiRemovePackages (gShellLevel3HiiHandle);
|
||||
}
|
||||
|
||||
return (EFI_SUCCESS);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include <Library/HiiLib.h>
|
||||
#include <Library/FileHandleLib.h>
|
||||
|
||||
extern EFI_HII_HANDLE gShellLevel3HiiHandle;
|
||||
extern EFI_HII_HANDLE gShellLevel3HiiHandle;
|
||||
|
||||
/**
|
||||
Function for 'type' command.
|
||||
@ -152,4 +152,3 @@ ShellCommandRunHelp (
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
#include <Library/ShellLib.h>
|
||||
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{L"-s", TypeFlag},
|
||||
{L"-terse", TypeFlag},
|
||||
{L"-t", TypeFlag},
|
||||
{L"-_pa", TypeFlag},
|
||||
{NULL, TypeMax}
|
||||
};
|
||||
STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
|
||||
{ L"-s", TypeFlag },
|
||||
{ L"-terse", TypeFlag },
|
||||
{ L"-t", TypeFlag },
|
||||
{ L"-_pa", TypeFlag },
|
||||
{ NULL, TypeMax }
|
||||
};
|
||||
|
||||
/**
|
||||
Function for 'ver' command.
|
||||
@ -33,54 +33,55 @@ ShellCommandRunVer (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINT8 Level;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Package;
|
||||
CHAR16 *ProblemParam;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINT8 Level;
|
||||
|
||||
Level = PcdGet8(PcdShellSupportLevel);
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
Level = PcdGet8 (PcdShellSupportLevel);
|
||||
ProblemParam = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
|
||||
//
|
||||
// initialize the shell lib (we must be in non-auto-init...)
|
||||
//
|
||||
Status = ShellInitialize();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = ShellInitialize ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = CommandInit();
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = CommandInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// parse the command line
|
||||
//
|
||||
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"ver", ProblemParam);
|
||||
FreePool(ProblemParam);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel3HiiHandle, L"ver", ProblemParam);
|
||||
FreePool (ProblemParam);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ASSERT(FALSE);
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-?")) {
|
||||
ASSERT(FALSE);
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
}
|
||||
if (ShellCommandLineGetRawValue(Package, 1) != NULL) {
|
||||
|
||||
if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
|
||||
//
|
||||
// we have too many parameters
|
||||
//
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"ver");
|
||||
ShellPrintHiiEx (-1, -1, NULL, 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")){
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel3HiiHandle, L"ver", L"-t or -terse", L"-s");
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
if (ShellCommandLineGetFlag (Package, L"-terse") || ShellCommandLineGetFlag (Package, L"-t")) {
|
||||
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel3HiiHandle, L"ver", L"-t or -terse", L"-s");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ShellPrintHiiEx (
|
||||
@ -91,7 +92,7 @@ ShellCommandRunVer (
|
||||
gShellLevel3HiiHandle,
|
||||
gEfiShellProtocol->MajorVersion,
|
||||
gEfiShellProtocol->MinorVersion
|
||||
);
|
||||
);
|
||||
}
|
||||
} else {
|
||||
ShellPrintHiiEx (
|
||||
@ -103,17 +104,16 @@ ShellCommandRunVer (
|
||||
SupportLevel[Level],
|
||||
gEfiShellProtocol->MajorVersion,
|
||||
gEfiShellProtocol->MinorVersion
|
||||
);
|
||||
if (!ShellCommandLineGetFlag(Package, L"-terse") && !ShellCommandLineGetFlag(Package, L"-t")){
|
||||
ShellPrintHiiEx(
|
||||
);
|
||||
if (!ShellCommandLineGetFlag (Package, L"-terse") && !ShellCommandLineGetFlag (Package, L"-t")) {
|
||||
ShellPrintHiiEx (
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SUPPLIER),
|
||||
gShellLevel3HiiHandle,
|
||||
(CHAR16 *) PcdGetPtr (PcdShellSupplier)
|
||||
);
|
||||
|
||||
(CHAR16 *)PcdGetPtr (PcdShellSupplier)
|
||||
);
|
||||
|
||||
ShellPrintHiiEx (
|
||||
-1,
|
||||
@ -125,14 +125,15 @@ ShellCommandRunVer (
|
||||
(gST->Hdr.Revision&0x0000ffff),
|
||||
gST->FirmwareVendor,
|
||||
gST->FirmwareRevision
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// implementation specific support for displaying processor architecture
|
||||
//
|
||||
if (ShellCommandLineGetFlag(Package, L"-_pa")) {
|
||||
ShellPrintEx(-1, -1, L"%d\r\n", sizeof(UINTN)==sizeof(UINT64)?64:32);
|
||||
if (ShellCommandLineGetFlag (Package, L"-_pa")) {
|
||||
ShellPrintEx (-1, -1, L"%d\r\n", sizeof (UINTN) == sizeof (UINT64) ? 64 : 32);
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,4 +145,3 @@ ShellCommandRunVer (
|
||||
|
||||
return (ShellStatus);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user