mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
ShellPkg/UefiShellDriver1: Flatten some functions
Flatten the following functions to make them easier to read: - TraverseHandleDatabase() - GetDeviceHandleInfo() - DoDecodeByProtocol() No functional change. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
This commit is contained in:
parent
1ab251c770
commit
c14647a483
3 changed files with 121 additions and 106 deletions
|
|
@ -91,24 +91,25 @@ GetDeviceHandleInfo (
|
|||
|
||||
// }
|
||||
Status = PARSE_HANDLE_DATABASE_UEFI_DRIVERS (TheHandle, Devices, &HandleBuffer);
|
||||
if (!EFI_ERROR (Status) && (Devices != NULL) && (HandleBuffer != NULL)) {
|
||||
for (Count = 0; Count < *Devices; Count++) {
|
||||
if (!EFI_ERROR (gBS->OpenProtocol (HandleBuffer[Count], &gEfiDriverConfigurationProtocolGuid, NULL, NULL, gImageHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {
|
||||
*Cfg = TRUE;
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (gBS->OpenProtocol (HandleBuffer[Count], &gEfiDriverDiagnosticsProtocolGuid, NULL, NULL, gImageHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {
|
||||
*Diag = TRUE;
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (gBS->OpenProtocol (HandleBuffer[Count], &gEfiDriverDiagnostics2ProtocolGuid, NULL, NULL, gImageHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {
|
||||
*Diag = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL (HandleBuffer);
|
||||
if (EFI_ERROR (Status) || (Devices == NULL) || (HandleBuffer == NULL)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
for (Count = 0; Count < *Devices; Count++) {
|
||||
if (!EFI_ERROR (gBS->OpenProtocol (HandleBuffer[Count], &gEfiDriverConfigurationProtocolGuid, NULL, NULL, gImageHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {
|
||||
*Cfg = TRUE;
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (gBS->OpenProtocol (HandleBuffer[Count], &gEfiDriverDiagnosticsProtocolGuid, NULL, NULL, gImageHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {
|
||||
*Diag = TRUE;
|
||||
}
|
||||
|
||||
if (!EFI_ERROR (gBS->OpenProtocol (HandleBuffer[Count], &gEfiDriverDiagnostics2ProtocolGuid, NULL, NULL, gImageHandle, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {
|
||||
*Diag = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL (HandleBuffer);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -994,24 +994,27 @@ DoDecodeByProtocol (
|
|||
|
||||
FreePool (Guids);
|
||||
}
|
||||
} else {
|
||||
if (ConvertStrToGuid (Protocol, &Guid) == EFI_SUCCESS) {
|
||||
Name = GetStringNameFromGuid (&Guid, Language);
|
||||
if (Name != NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_OUTPUT_DECODE), gShellDriver1HiiHandle, Name, &Guid);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_NO_GUID_FOUND), gShellDriver1HiiHandle, &Guid);
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL (Name);
|
||||
return SHELL_SUCCESS;
|
||||
}
|
||||
|
||||
if (ConvertStrToGuid (Protocol, &Guid) == EFI_SUCCESS) {
|
||||
Name = GetStringNameFromGuid (&Guid, Language);
|
||||
if (Name != NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_OUTPUT_DECODE), gShellDriver1HiiHandle, Name, &Guid);
|
||||
} else {
|
||||
Status = GetGuidFromStringName (Protocol, Language, &Guids);
|
||||
if (Status == EFI_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_OUTPUT_DECODE), gShellDriver1HiiHandle, Protocol, Guids);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_NO_NAME_FOUND), gShellDriver1HiiHandle, Protocol);
|
||||
}
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_NO_GUID_FOUND), gShellDriver1HiiHandle, &Guid);
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL (Name);
|
||||
return SHELL_SUCCESS;
|
||||
}
|
||||
|
||||
Status = GetGuidFromStringName (Protocol, Language, &Guids);
|
||||
if (Status == EFI_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_OUTPUT_DECODE), gShellDriver1HiiHandle, Protocol, Guids);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DH_NO_NAME_FOUND), gShellDriver1HiiHandle, Protocol);
|
||||
}
|
||||
|
||||
return SHELL_SUCCESS;
|
||||
|
|
|
|||
|
|
@ -58,89 +58,100 @@ TraverseHandleDatabase (
|
|||
&ArrayCount
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
for (ProtocolIndex = 0; ProtocolIndex < ArrayCount; ProtocolIndex++) {
|
||||
//
|
||||
// print out the human readable name for this one.
|
||||
//
|
||||
TempString = GetStringNameFromGuid (ProtocolGuidArray[ProtocolIndex], NULL);
|
||||
if (TempString == NULL) {
|
||||
continue;
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
for (ProtocolIndex = 0; ProtocolIndex < ArrayCount; ProtocolIndex++) {
|
||||
//
|
||||
// print out the human readable name for this one.
|
||||
//
|
||||
TempString = GetStringNameFromGuid (ProtocolGuidArray[ProtocolIndex], NULL);
|
||||
if (TempString == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ShellPrintDefaultEx (L"%H%s%N\r\n", TempString);
|
||||
FreePool (TempString);
|
||||
|
||||
//
|
||||
// Retrieve the list of agents that have opened each protocol
|
||||
//
|
||||
Status = gBS->OpenProtocolInformation (
|
||||
TheHandle,
|
||||
ProtocolGuidArray[ProtocolIndex],
|
||||
&OpenInfo,
|
||||
&OpenInfoCount
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
if (EFI_ERROR (Status)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (OpenInfoIndex = 0; OpenInfoIndex < OpenInfoCount; OpenInfoIndex++) {
|
||||
switch (OpenInfo[OpenInfoIndex].Attributes) {
|
||||
case EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL:
|
||||
OpenTypeString = StringHandProt;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_GET_PROTOCOL:
|
||||
OpenTypeString = StringGetProt;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_TEST_PROTOCOL:
|
||||
OpenTypeString = StringTestProt;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER:
|
||||
OpenTypeString = StringChild;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_DRIVER:
|
||||
OpenTypeString = StringDriver;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_EXCLUSIVE:
|
||||
OpenTypeString = StringExclusive;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_DRIVER|EFI_OPEN_PROTOCOL_EXCLUSIVE:
|
||||
OpenTypeString = StringDriverEx;
|
||||
break;
|
||||
default:
|
||||
OpenTypeString = StringUnknown;
|
||||
break;
|
||||
}
|
||||
|
||||
ShellPrintDefaultEx (L"%H%s%N\r\n", TempString);
|
||||
FreePool (TempString);
|
||||
|
||||
//
|
||||
// Retrieve the list of agents that have opened each protocol
|
||||
//
|
||||
Status = gBS->OpenProtocolInformation (
|
||||
TheHandle,
|
||||
ProtocolGuidArray[ProtocolIndex],
|
||||
&OpenInfo,
|
||||
&OpenInfoCount
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
for (OpenInfoIndex = 0; OpenInfoIndex < OpenInfoCount; OpenInfoIndex++) {
|
||||
switch (OpenInfo[OpenInfoIndex].Attributes) {
|
||||
case EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL: OpenTypeString = StringHandProt;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_GET_PROTOCOL: OpenTypeString = StringGetProt;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_TEST_PROTOCOL: OpenTypeString = StringTestProt;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER: OpenTypeString = StringChild;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_DRIVER: OpenTypeString = StringDriver;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_EXCLUSIVE: OpenTypeString = StringExclusive;
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_DRIVER|EFI_OPEN_PROTOCOL_EXCLUSIVE:
|
||||
OpenTypeString = StringDriverEx;
|
||||
break;
|
||||
default: OpenTypeString = StringUnknown;
|
||||
break;
|
||||
}
|
||||
|
||||
HandleIndex = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].AgentHandle);
|
||||
if (HandleIndex == 0) {
|
||||
FreePool (OpenInfo);
|
||||
FreePool (ProtocolGuidArray);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Name = GetStringNameFromHandle (OpenInfo[OpenInfoIndex].AgentHandle, NULL);
|
||||
ControllerIndex = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].ControllerHandle);
|
||||
if ((ControllerIndex != 0) && (Name != NULL)) {
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_OPENINFO_LINE),
|
||||
gShellDriver1HiiHandle,
|
||||
HandleIndex,
|
||||
ControllerIndex,
|
||||
OpenInfo[OpenInfoIndex].OpenCount,
|
||||
OpenTypeString,
|
||||
Name
|
||||
);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_OPENINFO_MIN_LINE),
|
||||
gShellDriver1HiiHandle,
|
||||
HandleIndex,
|
||||
OpenInfo[OpenInfoIndex].OpenCount,
|
||||
OpenTypeString,
|
||||
Name ? Name : L""
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
HandleIndex = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].AgentHandle);
|
||||
if (HandleIndex == 0) {
|
||||
FreePool (OpenInfo);
|
||||
FreePool (ProtocolGuidArray);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Name = GetStringNameFromHandle (OpenInfo[OpenInfoIndex].AgentHandle, NULL);
|
||||
ControllerIndex = ConvertHandleToHandleIndex (OpenInfo[OpenInfoIndex].ControllerHandle);
|
||||
if ((ControllerIndex != 0) && (Name != NULL)) {
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_OPENINFO_LINE),
|
||||
gShellDriver1HiiHandle,
|
||||
HandleIndex,
|
||||
ControllerIndex,
|
||||
OpenInfo[OpenInfoIndex].OpenCount,
|
||||
OpenTypeString,
|
||||
Name
|
||||
);
|
||||
} else {
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_OPENINFO_MIN_LINE),
|
||||
gShellDriver1HiiHandle,
|
||||
HandleIndex,
|
||||
OpenInfo[OpenInfoIndex].OpenCount,
|
||||
OpenTypeString,
|
||||
Name ? Name : L""
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
FreePool (ProtocolGuidArray);
|
||||
FreePool (OpenInfo);
|
||||
}
|
||||
|
||||
FreePool (ProtocolGuidArray);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue