MdeModulePkg/TerminalDxe: Some improvements

1. Get default terminal type from PCD rather than using PCANSI
directly in BuildTeminalDevpath;
2. Only terminal type is needed to create an TerminalDev instance, so
remove the useless code of creating and freeing DefaultNode.
3. Some white space refining.

Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18027 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Heyi Guo 2015-07-16 08:50:43 +00:00 committed by abiesheuvel
parent f8fdf8cd0a
commit cf1e634b4b
1 changed files with 4 additions and 23 deletions

View File

@ -258,14 +258,13 @@ BuildTerminalDevpath (
EFI_STATUS Status; EFI_STATUS Status;
TerminalDevicePath = NULL; TerminalDevicePath = NULL;
TerminalType = PCANSITYPE;
// //
// Use the RemainingDevicePath to determine the terminal type // Use the RemainingDevicePath to determine the terminal type
// //
Node = (VENDOR_DEVICE_PATH *) RemainingDevicePath; Node = (VENDOR_DEVICE_PATH *) RemainingDevicePath;
if (Node == NULL) { if (Node == NULL) {
TerminalType = PCANSITYPE; TerminalType = PcdGet8 (PcdDefaultTerminalType);
} else if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) { } else if (CompareGuid (&Node->Guid, &gEfiPcAnsiGuid)) {
@ -545,7 +544,6 @@ TerminalDriverBindingStart (
EFI_SERIAL_IO_PROTOCOL *SerialIo; EFI_SERIAL_IO_PROTOCOL *SerialIo;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath; EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
VENDOR_DEVICE_PATH *Node; VENDOR_DEVICE_PATH *Node;
VENDOR_DEVICE_PATH *DefaultNode;
EFI_SERIAL_IO_MODE *Mode; EFI_SERIAL_IO_MODE *Mode;
UINTN SerialInTimeOut; UINTN SerialInTimeOut;
TERMINAL_DEV *TerminalDevice; TERMINAL_DEV *TerminalDevice;
@ -565,7 +563,6 @@ TerminalDriverBindingStart (
UINTN ModeCount; UINTN ModeCount;
TerminalDevice = NULL; TerminalDevice = NULL;
DefaultNode = NULL;
ConInSelected = FALSE; ConInSelected = FALSE;
ConOutSelected = FALSE; ConOutSelected = FALSE;
NullRemaining = FALSE; NullRemaining = FALSE;
@ -709,23 +706,14 @@ TerminalDriverBindingStart (
} }
// //
// If RemainingDevicePath is NULL, then create default device path node // If RemainingDevicePath is NULL, use default terminal type
// //
if (RemainingDevicePath == NULL) { if (RemainingDevicePath == NULL) {
DefaultNode = AllocateZeroPool (sizeof (VENDOR_DEVICE_PATH));
if (DefaultNode == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
TerminalType = PcdGet8 (PcdDefaultTerminalType); TerminalType = PcdGet8 (PcdDefaultTerminalType);
// //
// Must be between PCANSITYPE (0) and TTYTERMTYPE (4) // Must be between PCANSITYPE (0) and TTYTERMTYPE (4)
// //
ASSERT (TerminalType <= TTYTERMTYPE); ASSERT (TerminalType <= TTYTERMTYPE);
CopyMem (&DefaultNode->Guid, gTerminalType[TerminalType], sizeof (EFI_GUID));
RemainingDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DefaultNode;
} else if (!IsDevicePathEnd (RemainingDevicePath)) { } else if (!IsDevicePathEnd (RemainingDevicePath)) {
// //
// If RemainingDevicePath isn't the End of Device Path Node, // If RemainingDevicePath isn't the End of Device Path Node,
@ -1183,9 +1171,6 @@ TerminalDriverBindingStart (
goto Error; goto Error;
} }
} }
if (DefaultNode != NULL) {
FreePool (DefaultNode);
}
return EFI_SUCCESS; return EFI_SUCCESS;
@ -1254,10 +1239,6 @@ Error:
} }
} }
if (DefaultNode != NULL) {
FreePool (DefaultNode);
}
This->Stop (This, Controller, 0, NULL); This->Stop (This, Controller, 0, NULL);
return Status; return Status;