ArmPkg: only attempt buildin MmCommunicationDxe for AArch64
[mirror_edk2.git] / EmbeddedPkg / Include / Library / GdbSerialLib.h
1 /** @file
2 Basic serial IO abstraction for GDB
3
4 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef __GDB_SERIAL_LIB_H__
11 #define __GDB_SERIAL_LIB_H__
12
13
14
15 /**
16 Sets the baud rate, receive FIFO depth, transmit/receive time out, parity,
17 data buts, and stop bits on a serial device. This call is optional as the serial
18 port will be set up with defaults base on PCD values.
19
20 @param BaudRate The requested baud rate. A BaudRate value of 0 will use the the
21 device's default interface speed.
22 @param Parity The type of parity to use on this serial device. A Parity value of
23 DefaultParity will use the device's default parity value.
24 @param DataBits The number of data bits to use on the serial device. A DataBits
25 value of 0 will use the device's default data bit setting.
26 @param StopBits The number of stop bits to use on this serial device. A StopBits
27 value of DefaultStopBits will use the device's default number of
28 stop bits.
29
30 @retval EFI_SUCCESS The device was configured.
31 @retval EFI_DEVICE_ERROR The serial device could not be configured.
32
33 **/
34 RETURN_STATUS
35 EFIAPI
36 GdbSerialInit (
37 IN UINT64 BaudRate,
38 IN UINT8 Parity,
39 IN UINT8 DataBits,
40 IN UINT8 StopBits
41 );
42
43
44 /**
45 Check to see if a character is available from GDB. Do not read the character as that is
46 done via GdbGetChar().
47
48 @return TRUE - Character available
49 @return FALSE - Character not available
50
51 **/
52 BOOLEAN
53 EFIAPI
54 GdbIsCharAvailable (
55 VOID
56 );
57
58 /**
59 Get a character from GDB. This function must be able to run in interrupt context.
60
61 @return A character from GDB
62
63 **/
64 CHAR8
65 EFIAPI
66 GdbGetChar (
67 VOID
68 );
69
70
71 /**
72 Send a character to GDB. This function must be able to run in interrupt context.
73
74
75 @param Char Send a character to GDB
76
77 **/
78
79 VOID
80 EFIAPI
81 GdbPutChar (
82 IN CHAR8 Char
83 );
84
85
86 /**
87 Send an ASCII string to GDB. This function must be able to run in interrupt context.
88
89
90 @param String Send a string to GDB
91
92 **/
93
94 VOID
95 GdbPutString (
96 IN CHAR8 *String
97 );
98
99
100 #endif
101