Basic serial IO abstaction for GDB\r
\r
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
- \r
+\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
\r
/**\r
The constructor function initializes the UART.\r
- \r
+\r
@param ImageHandle The firmware allocated handle for the EFI image.\r
@param SystemTable A pointer to the EFI System Table.\r
- \r
+\r
@retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
\r
**/\r
)\r
{\r
EFI_STATUS Status;\r
- \r
+\r
Status = gBS->LocateProtocol (&gEfiDebugPortProtocolGuid, NULL, (VOID **)&gDebugPort);\r
if (!EFI_ERROR (Status)) {\r
gTimeOut = PcdGet32 (PcdGdbMaxPacketRetryCount);\r
gDebugPort->Reset (gDebugPort);\r
}\r
- \r
+\r
return Status;\r
}\r
\r
\r
\r
/**\r
- Sets the baud rate, receive FIFO depth, transmit/receice time out, parity, \r
+ Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,\r
data buts, and stop bits on a serial device. This call is optional as the serial\r
port will be set up with defaults base on PCD values.\r
\r
RETURN_STATUS\r
EFIAPI\r
GdbSerialInit (\r
- IN UINT64 BaudRate, \r
- IN UINT8 Parity, \r
- IN UINT8 DataBits, \r
- IN UINT8 StopBits \r
+ IN UINT64 BaudRate,\r
+ IN UINT8 Parity,\r
+ IN UINT8 DataBits,\r
+ IN UINT8 StopBits\r
)\r
{\r
EFI_STATUS Status;\r
- \r
+\r
Status = gDebugPort->Reset (gDebugPort);\r
return Status;\r
}\r
Check to see if a character is available from GDB. Do not read the character as that is\r
done via GdbGetChar().\r
\r
- @return TRUE - Character availible\r
- @return FALSE - Character not availible\r
- \r
+ @return TRUE - Character available\r
+ @return FALSE - Character not available\r
+\r
**/\r
BOOLEAN\r
EFIAPI\r
GdbIsCharAvailable (\r
VOID\r
- ) \r
+ )\r
{\r
EFI_STATUS Status;\r
- \r
+\r
Status = gDebugPort->Poll (gDebugPort);\r
- \r
+\r
return (Status == EFI_SUCCESS ? TRUE : FALSE);\r
}\r
\r
Get a character from GDB. This function must be able to run in interrupt context.\r
\r
@return A character from GDB\r
- \r
+\r
**/\r
CHAR8\r
EFIAPI\r
EFI_STATUS Status;\r
CHAR8 Char;\r
UINTN BufferSize;\r
- \r
+\r
do {\r
BufferSize = sizeof (Char);\r
Status = gDebugPort->Read (gDebugPort, gTimeOut, &BufferSize, &Char);\r
} while (EFI_ERROR (Status) || BufferSize != sizeof (Char));\r
- \r
+\r
return Char;\r
}\r
\r
{\r
EFI_STATUS Status;\r
UINTN BufferSize;\r
- \r
+\r
do {\r
BufferSize = sizeof (Char);\r
Status = gDebugPort->Write (gDebugPort, gTimeOut, &BufferSize, &Char);\r
} while (EFI_ERROR (Status) || BufferSize != sizeof (Char));\r
- \r
+\r
return;\r
}\r
\r