Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2726 | vana | 1 | #ifndef _EFI_SER_H |
2 | #define _EFI_SER_H |
||
3 | |||
4 | /*++ |
||
5 | |||
6 | Copyright (c) 1998 Intel Corporation |
||
7 | |||
8 | Module Name: |
||
9 | |||
10 | efiser.h |
||
11 | |||
12 | Abstract: |
||
13 | |||
14 | EFI serial protocol |
||
15 | |||
16 | Revision History |
||
17 | |||
18 | --*/ |
||
19 | |||
20 | // |
||
21 | // Serial protocol |
||
22 | // |
||
23 | |||
24 | #define SERIAL_IO_PROTOCOL \ |
||
25 | { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD} } |
||
26 | |||
27 | INTERFACE_DECL(_SERIAL_IO_INTERFACE); |
||
28 | |||
29 | typedef enum { |
||
30 | DefaultParity, |
||
31 | NoParity, |
||
32 | EvenParity, |
||
33 | OddParity, |
||
34 | MarkParity, |
||
35 | SpaceParity |
||
36 | } EFI_PARITY_TYPE; |
||
37 | |||
38 | typedef enum { |
||
39 | DefaultStopBits, |
||
40 | OneStopBit, // 1 stop bit |
||
41 | OneFiveStopBits, // 1.5 stop bits |
||
42 | TwoStopBits // 2 stop bits |
||
43 | } EFI_STOP_BITS_TYPE; |
||
44 | |||
45 | #define EFI_SERIAL_CLEAR_TO_SEND 0x0010 // RO |
||
46 | #define EFI_SERIAL_DATA_SET_READY 0x0020 // RO |
||
47 | #define EFI_SERIAL_RING_INDICATE 0x0040 // RO |
||
48 | #define EFI_SERIAL_CARRIER_DETECT 0x0080 // RO |
||
49 | #define EFI_SERIAL_REQUEST_TO_SEND 0x0002 // WO |
||
50 | #define EFI_SERIAL_DATA_TERMINAL_READY 0x0001 // WO |
||
51 | #define EFI_SERIAL_INPUT_BUFFER_EMPTY 0x0100 // RO |
||
52 | #define EFI_SERIAL_OUTPUT_BUFFER_EMPTY 0x0200 // RO |
||
53 | #define EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE 0x1000 // RW |
||
54 | #define EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE 0x2000 // RW |
||
55 | #define EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE 0x4000 // RW |
||
56 | |||
57 | typedef |
||
58 | EFI_STATUS |
||
59 | (EFIAPI *EFI_SERIAL_RESET) ( |
||
60 | IN struct _SERIAL_IO_INTERFACE *This |
||
61 | ); |
||
62 | |||
63 | typedef |
||
64 | EFI_STATUS |
||
65 | (EFIAPI *EFI_SERIAL_SET_ATTRIBUTES) ( |
||
66 | IN struct _SERIAL_IO_INTERFACE *This, |
||
67 | IN UINT64 BaudRate, |
||
68 | IN UINT32 ReceiveFifoDepth, |
||
69 | IN UINT32 Timeout, |
||
70 | IN EFI_PARITY_TYPE Parity, |
||
71 | IN UINT8 DataBits, |
||
72 | IN EFI_STOP_BITS_TYPE StopBits |
||
73 | ); |
||
74 | |||
75 | typedef |
||
76 | EFI_STATUS |
||
77 | (EFIAPI *EFI_SERIAL_SET_CONTROL_BITS) ( |
||
78 | IN struct _SERIAL_IO_INTERFACE *This, |
||
79 | IN UINT32 Control |
||
80 | ); |
||
81 | |||
82 | typedef |
||
83 | EFI_STATUS |
||
84 | (EFIAPI *EFI_SERIAL_GET_CONTROL_BITS) ( |
||
85 | IN struct _SERIAL_IO_INTERFACE *This, |
||
86 | OUT UINT32 *Control |
||
87 | ); |
||
88 | |||
89 | typedef |
||
90 | EFI_STATUS |
||
91 | (EFIAPI *EFI_SERIAL_WRITE) ( |
||
92 | IN struct _SERIAL_IO_INTERFACE *This, |
||
93 | IN OUT UINTN *BufferSize, |
||
94 | IN VOID *Buffer |
||
95 | ); |
||
96 | |||
97 | typedef |
||
98 | EFI_STATUS |
||
99 | (EFIAPI *EFI_SERIAL_READ) ( |
||
100 | IN struct _SERIAL_IO_INTERFACE *This, |
||
101 | IN OUT UINTN *BufferSize, |
||
102 | OUT VOID *Buffer |
||
103 | ); |
||
104 | |||
105 | typedef struct { |
||
106 | UINT32 ControlMask; |
||
107 | |||
108 | // current Attributes |
||
109 | UINT32 Timeout; |
||
110 | UINT64 BaudRate; |
||
111 | UINT32 ReceiveFifoDepth; |
||
112 | UINT32 DataBits; |
||
113 | UINT32 Parity; |
||
114 | UINT32 StopBits; |
||
115 | } SERIAL_IO_MODE; |
||
116 | |||
117 | #define SERIAL_IO_INTERFACE_REVISION 0x00010000 |
||
118 | |||
119 | typedef struct _SERIAL_IO_INTERFACE { |
||
120 | UINT32 Revision; |
||
121 | EFI_SERIAL_RESET Reset; |
||
122 | EFI_SERIAL_SET_ATTRIBUTES SetAttributes; |
||
123 | EFI_SERIAL_SET_CONTROL_BITS SetControl; |
||
124 | EFI_SERIAL_GET_CONTROL_BITS GetControl; |
||
125 | EFI_SERIAL_WRITE Write; |
||
126 | EFI_SERIAL_READ Read; |
||
127 | |||
128 | SERIAL_IO_MODE *Mode; |
||
129 | } SERIAL_IO_INTERFACE; |
||
130 | |||
131 | #endif |
||
132 |