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