mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
ShellPkg/UefiShellDebug1: Lower indentation level in MainCmdXXX() (4/4)
This patch aims to help breaking down the long functions present in the ShellPkg and reduce complexity/nested code and conditions. Lower the indentation level in the newly created MainCmdXXX() functions. To avoid having one large commit updating all the UefiShellDebug1 commands, only update these files: - SerMode.c - SetSize.c - SetVar.c - SmbiosView/SmbiosView.c No functional change should be induced by this patch. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
This commit is contained in:
parent
642954d295
commit
42f1d004c0
4 changed files with 281 additions and 292 deletions
|
|
@ -272,116 +272,109 @@ MainCmdSerMode (
|
|||
|
||||
if ((ShellCommandLineGetCount (Package) < 6) && (ShellCommandLineGetCount (Package) > 2)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"sermode");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetCount (Package) > 6) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"sermode");
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 1);
|
||||
if (Temp == NULL) {
|
||||
return DisplaySettings (0, FALSE);
|
||||
}
|
||||
|
||||
Status = ShellConvertStringToUint64 (Temp, &Intermediate, TRUE, FALSE);
|
||||
HandleIdx = (UINTN)Intermediate;
|
||||
Temp = ShellCommandLineGetRawValue (Package, 2);
|
||||
if (Temp == NULL) {
|
||||
return DisplaySettings (HandleIdx, TRUE);
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 2);
|
||||
if (Temp != NULL) {
|
||||
BaudRate = ShellStrToUintn (Temp);
|
||||
} else {
|
||||
ASSERT (FALSE);
|
||||
BaudRate = 0;
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 3);
|
||||
if ((Temp == NULL) || (StrLen (Temp) > 1)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
Temp = ShellCommandLineGetRawValue (Package, 1);
|
||||
if (Temp != NULL) {
|
||||
Status = ShellConvertStringToUint64 (Temp, &Intermediate, TRUE, FALSE);
|
||||
HandleIdx = (UINTN)Intermediate;
|
||||
Temp = ShellCommandLineGetRawValue (Package, 2);
|
||||
if (Temp == NULL) {
|
||||
ShellStatus = DisplaySettings (HandleIdx, TRUE);
|
||||
goto Done;
|
||||
}
|
||||
} else {
|
||||
ShellStatus = DisplaySettings (0, FALSE);
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 2);
|
||||
if (Temp != NULL) {
|
||||
BaudRate = ShellStrToUintn (Temp);
|
||||
} else {
|
||||
ASSERT (FALSE);
|
||||
BaudRate = 0;
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 3);
|
||||
if ((Temp == NULL) || (StrLen (Temp) > 1)) {
|
||||
Status = GetParityType (Temp[0], &Parity);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
Status = GetParityType (Temp[0], &Parity);
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 4);
|
||||
if (Temp != NULL) {
|
||||
DataBits = ShellStrToUintn (Temp);
|
||||
} else {
|
||||
//
|
||||
// make sure this is some number not in the list below.
|
||||
//
|
||||
DataBits = 0;
|
||||
}
|
||||
|
||||
if (!ValidDataBits (DataBits)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 5);
|
||||
if (Temp == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode");
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Status = GetStopBits (ShellStrToUintn (Temp), &StopBits);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiSerialIoProtocolGuid, NULL, &NoHandles, &Handles);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_NO_FOUND), gShellDebug1HiiHandle, L"sermode");
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
for (Index = 0; Index < NoHandles; Index++) {
|
||||
if (ConvertHandleIndexToHandle (HandleIdx) != Handles[Index]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Status = gBS->HandleProtocol (Handles[Index], &gEfiSerialIoProtocolGuid, (VOID **)&SerialIo);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
Status = SerialIo->SetAttributes (
|
||||
SerialIo,
|
||||
(UINT64)BaudRate,
|
||||
SerialIo->Mode->ReceiveFifoDepth,
|
||||
SerialIo->Mode->Timeout,
|
||||
Parity,
|
||||
(UINT8)DataBits,
|
||||
StopBits
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 4);
|
||||
if (Temp != NULL) {
|
||||
DataBits = ShellStrToUintn (Temp);
|
||||
} else {
|
||||
//
|
||||
// make sure this is some number not in the list below.
|
||||
//
|
||||
DataBits = 0;
|
||||
}
|
||||
|
||||
if (!ValidDataBits (DataBits)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Temp = ShellCommandLineGetRawValue (Package, 5);
|
||||
if (Temp == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Status = GetStopBits (ShellStrToUintn (Temp), &StopBits);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"sermode", Temp);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiSerialIoProtocolGuid, NULL, &NoHandles, &Handles);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_NO_FOUND), gShellDebug1HiiHandle, L"sermode");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
for (Index = 0; Index < NoHandles; Index++) {
|
||||
if (ConvertHandleIndexToHandle (HandleIdx) != Handles[Index]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Status = gBS->HandleProtocol (Handles[Index], &gEfiSerialIoProtocolGuid, (VOID **)&SerialIo);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
Status = SerialIo->SetAttributes (
|
||||
SerialIo,
|
||||
(UINT64)BaudRate,
|
||||
SerialIo->Mode->ReceiveFifoDepth,
|
||||
SerialIo->Mode->Timeout,
|
||||
Parity,
|
||||
(UINT8)DataBits,
|
||||
StopBits
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
if (Status == EFI_INVALID_PARAMETER) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_UNSUPPORTED), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellStatus = SHELL_UNSUPPORTED;
|
||||
} else if (Status == EFI_DEVICE_ERROR) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_DEV_ERROR), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_FAIL), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
}
|
||||
if (Status == EFI_INVALID_PARAMETER) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_UNSUPPORTED), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellStatus = SHELL_UNSUPPORTED;
|
||||
} else if (Status == EFI_DEVICE_ERROR) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_DEV_ERROR), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_HANDLE), gShellDebug1HiiHandle, ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_FAIL), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex (Handles[Index]));
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
}
|
||||
|
||||
break;
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SERMODE_SET_HANDLE), gShellDebug1HiiHandle, ConvertHandleToHandleIndex (Handles[Index]));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -390,7 +383,6 @@ MainCmdSerMode (
|
|||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Done:
|
||||
if (Handles != NULL) {
|
||||
FreePool (Handles);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,23 +31,20 @@ MainCmdSetSize (
|
|||
|
||||
if (ShellCommandLineGetCount (Package) < 3) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"setsize");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
NewSize = 0;
|
||||
} else {
|
||||
Temp1 = ShellCommandLineGetRawValue (Package, 1);
|
||||
if (Temp1 == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setsize");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
NewSize = 0;
|
||||
} else if (!ShellIsHexOrDecimalNumber (Temp1, FALSE, FALSE)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SIZE_NOT_SPEC), gShellDebug1HiiHandle, L"setsize");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
NewSize = 0;
|
||||
} else {
|
||||
NewSize = ShellStrToUintn (Temp1);
|
||||
}
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Temp1 = ShellCommandLineGetRawValue (Package, 1);
|
||||
if (Temp1 == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setsize");
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (!ShellIsHexOrDecimalNumber (Temp1, FALSE, FALSE)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SIZE_NOT_SPEC), gShellDebug1HiiHandle, L"setsize");
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
NewSize = ShellStrToUintn (Temp1);
|
||||
|
||||
for (LoopVar = 2; LoopVar < ShellCommandLineGetCount (Package) && ShellStatus == SHELL_SUCCESS; LoopVar++) {
|
||||
Status = ShellOpenFileByName (ShellCommandLineGetRawValue (Package, LoopVar), &FileHandle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, 0);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
|
|
|||
|
|
@ -370,104 +370,104 @@ MainCmdSetVar (
|
|||
|
||||
if (ShellCommandLineGetCount (Package) < 2) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"setvar");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
VariableName = ShellCommandLineGetRawValue (Package, 1);
|
||||
if (VariableName == NULL) {
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (!ShellCommandLineGetFlag (Package, L"-guid")) {
|
||||
CopyGuid (&Guid, &gEfiGlobalVariableGuid);
|
||||
} else {
|
||||
VariableName = ShellCommandLineGetRawValue (Package, 1);
|
||||
if (VariableName == NULL) {
|
||||
StringGuid = ShellCommandLineGetValue (Package, L"-guid");
|
||||
if (StringGuid != NULL) {
|
||||
RStatus = StrToGuid (StringGuid, &Guid);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setvar", StringGuid);
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (!ShellCommandLineGetFlag (Package, L"-guid")) {
|
||||
CopyGuid (&Guid, &gEfiGlobalVariableGuid);
|
||||
} else {
|
||||
StringGuid = ShellCommandLineGetValue (Package, L"-guid");
|
||||
if (StringGuid != NULL) {
|
||||
RStatus = StrToGuid (StringGuid, &Guid);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setvar", StringGuid);
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
if (RETURN_ERROR (RStatus) || (StringGuid[GUID_STRING_LENGTH] != L'\0')) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setvar", StringGuid);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetCount (Package) == 2) {
|
||||
//
|
||||
// Display
|
||||
//
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
Buffer = AllocateZeroPool (Size);
|
||||
if (Buffer == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar");
|
||||
return SHELL_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
if (RETURN_ERROR (RStatus) || (StringGuid[GUID_STRING_LENGTH] != L'\0')) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setvar", StringGuid);
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (Status) && (Buffer != NULL)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SETVAR_PRINT), gShellDebug1HiiHandle, &Guid, VariableName, Size);
|
||||
for (LoopVar = 0; LoopVar < Size; LoopVar++) {
|
||||
ShellPrintDefaultEx (L"%02x ", ((UINT8 *)Buffer)[LoopVar]);
|
||||
}
|
||||
|
||||
ShellPrintDefaultEx (L"\r\n");
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SETVAR_ERROR_GET), gShellDebug1HiiHandle, L"setvar", &Guid, VariableName);
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// Create, Delete or Modify.
|
||||
//
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
Buffer = AllocateZeroPool (Size);
|
||||
if (Buffer == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar");
|
||||
return SHELL_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status) || (Buffer == NULL)) {
|
||||
//
|
||||
// Creating a new variable. determine attributes from command line.
|
||||
//
|
||||
Attributes = 0;
|
||||
if (ShellCommandLineGetFlag (Package, L"-bs")) {
|
||||
Attributes |= EFI_VARIABLE_BOOTSERVICE_ACCESS;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-rt")) {
|
||||
Attributes |= EFI_VARIABLE_RUNTIME_ACCESS |
|
||||
EFI_VARIABLE_BOOTSERVICE_ACCESS;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-nv")) {
|
||||
Attributes |= EFI_VARIABLE_NON_VOLATILE;
|
||||
}
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetCount (Package) == 2) {
|
||||
//
|
||||
// Display
|
||||
//
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
Buffer = AllocateZeroPool (Size);
|
||||
if (Buffer == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar");
|
||||
return SHELL_OUT_OF_RESOURCES;
|
||||
}
|
||||
SHELL_FREE_NON_NULL (Buffer);
|
||||
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
}
|
||||
Size = 0;
|
||||
Status = GetVariableDataFromParameter (Package, (UINT8 **)&Buffer, &Size);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
Status = gRT->SetVariable ((CHAR16 *)VariableName, &Guid, Attributes, Size, Buffer);
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (Status) && (Buffer != NULL)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SETVAR_PRINT), gShellDebug1HiiHandle, &Guid, VariableName, Size);
|
||||
for (LoopVar = 0; LoopVar < Size; LoopVar++) {
|
||||
ShellPrintDefaultEx (L"%02x ", ((UINT8 *)Buffer)[LoopVar]);
|
||||
}
|
||||
|
||||
ShellPrintDefaultEx (L"\r\n");
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SETVAR_ERROR_GET), gShellDebug1HiiHandle, L"setvar", &Guid, VariableName);
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
}
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, L"setvar", &Guid, VariableName);
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
} else {
|
||||
//
|
||||
// Create, Delete or Modify.
|
||||
//
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
Buffer = AllocateZeroPool (Size);
|
||||
if (Buffer == NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar");
|
||||
return SHELL_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Status = gRT->GetVariable ((CHAR16 *)VariableName, &Guid, &Attributes, &Size, Buffer);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status) || (Buffer == NULL)) {
|
||||
//
|
||||
// Creating a new variable. determine attributes from command line.
|
||||
//
|
||||
Attributes = 0;
|
||||
if (ShellCommandLineGetFlag (Package, L"-bs")) {
|
||||
Attributes |= EFI_VARIABLE_BOOTSERVICE_ACCESS;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-rt")) {
|
||||
Attributes |= EFI_VARIABLE_RUNTIME_ACCESS |
|
||||
EFI_VARIABLE_BOOTSERVICE_ACCESS;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-nv")) {
|
||||
Attributes |= EFI_VARIABLE_NON_VOLATILE;
|
||||
}
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL (Buffer);
|
||||
|
||||
Size = 0;
|
||||
Status = GetVariableDataFromParameter (Package, (UINT8 **)&Buffer, &Size);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
Status = gRT->SetVariable ((CHAR16 *)VariableName, &Guid, Attributes, Size, Buffer);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, L"setvar", &Guid, VariableName);
|
||||
ShellStatus = SHELL_ACCESS_DENIED;
|
||||
} else {
|
||||
ASSERT (ShellStatus == SHELL_SUCCESS);
|
||||
}
|
||||
ASSERT (ShellStatus == SHELL_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,13 +57,13 @@ MainCmdSmbiosView (
|
|||
|
||||
if (ShellCommandLineGetCount (Package) > 1) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"smbiosview");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-t") && (ShellCommandLineGetValue (Package, L"-t") == NULL)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle, L"smbiosview", L"-t");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-h") && (ShellCommandLineGetValue (Package, L"-h") == NULL)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle, L"smbiosview", L"-h");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (
|
||||
(ShellCommandLineGetFlag (Package, L"-t") && ShellCommandLineGetFlag (Package, L"-h")) ||
|
||||
(ShellCommandLineGetFlag (Package, L"-t") && ShellCommandLineGetFlag (Package, L"-s")) ||
|
||||
|
|
@ -74,111 +74,111 @@ MainCmdSmbiosView (
|
|||
)
|
||||
{
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"smbiosview");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// Init Lib
|
||||
//
|
||||
Status1 = LibSmbiosInit ();
|
||||
Status2 = LibSmbios64BitInit ();
|
||||
if (EFI_ERROR (Status1) && EFI_ERROR (Status2)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), gShellDebug1HiiHandle);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
StructType = STRUCTURE_TYPE_RANDOM;
|
||||
RandomView = TRUE;
|
||||
|
||||
Temp = ShellCommandLineGetValue (Package, L"-t");
|
||||
if (Temp != NULL) {
|
||||
StructType = (UINT8)ShellStrToUintn (Temp);
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-a")) {
|
||||
gShowType = SHOW_ALL;
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (Status1)) {
|
||||
//
|
||||
// Init Lib
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
Status1 = LibSmbiosInit ();
|
||||
Status2 = LibSmbios64BitInit ();
|
||||
if (EFI_ERROR (Status1) && EFI_ERROR (Status2)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SMBIOSVIEW_LIBSMBIOSVIEW_CANNOT_GET_TABLE), gShellDebug1HiiHandle);
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbiosStructure (&StructHandle, NULL, NULL);
|
||||
|
||||
Temp = ShellCommandLineGetValue (Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16)ShellStrToUintn (Temp);
|
||||
}
|
||||
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbiosTableStatistics ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
StructType = STRUCTURE_TYPE_RANDOM;
|
||||
RandomView = TRUE;
|
||||
|
||||
Temp = ShellCommandLineGetValue (Package, L"-t");
|
||||
if (Temp != NULL) {
|
||||
StructType = (UINT8)ShellStrToUintn (Temp);
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-a")) {
|
||||
gShowType = SHOW_ALL;
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (Status1)) {
|
||||
//
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbiosStructure (&StructHandle, NULL, NULL);
|
||||
|
||||
Temp = ShellCommandLineGetValue (Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16)ShellStrToUintn (Temp);
|
||||
}
|
||||
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbiosTableStatistics ();
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
Status = DisplayStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
Status = DisplayStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
|
||||
goto Show64Bit;
|
||||
}
|
||||
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBiosView (StructType, StructHandle, gShowType, RandomView);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
goto Show64Bit;
|
||||
}
|
||||
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBiosView (StructType, StructHandle, gShowType, RandomView);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
|
||||
Show64Bit:
|
||||
if (!EFI_ERROR (Status2)) {
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbios64BitTableStatistics ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
if (!EFI_ERROR (Status2)) {
|
||||
//
|
||||
// build statistics table
|
||||
//
|
||||
Status = InitSmbios64BitTableStatistics ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbios64BitStructure (&StructHandle, NULL, NULL);
|
||||
//
|
||||
// Initialize the StructHandle to be the first handle
|
||||
//
|
||||
StructHandle = INVALID_HANDLE;
|
||||
LibGetSmbios64BitStructure (&StructHandle, NULL, NULL);
|
||||
|
||||
Temp = ShellCommandLineGetValue (Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16)ShellStrToUintn (Temp);
|
||||
}
|
||||
Temp = ShellCommandLineGetValue (Package, L"-h");
|
||||
if (Temp != NULL) {
|
||||
RandomView = FALSE;
|
||||
StructHandle = (UINT16)ShellStrToUintn (Temp);
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
Status = DisplaySmbios64BitStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBios64View (StructType, StructHandle, gShowType, RandomView);
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
Status = DisplaySmbios64BitStatisticsTable (SHOW_DETAIL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// Show SMBIOS structure information
|
||||
//
|
||||
Status = SMBios64View (StructType, StructHandle, gShowType, RandomView);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue