efitcp.h revision 1.1.1.1.10.2 1 1.1.1.1.10.2 tls /* $NetBSD: efitcp.h,v 1.1.1.1.10.2 2014/08/20 00:04:23 tls Exp $ */
2 1.1.1.1.10.2 tls
3 1.1.1.1.10.2 tls #ifndef _EFI_TCP_H
4 1.1.1.1.10.2 tls #define _EFI_TCP_H
5 1.1.1.1.10.2 tls
6 1.1.1.1.10.2 tls /*++
7 1.1.1.1.10.2 tls Copyright (c) 2013 Intel Corporation
8 1.1.1.1.10.2 tls
9 1.1.1.1.10.2 tls --*/
10 1.1.1.1.10.2 tls
11 1.1.1.1.10.2 tls #define EFI_TCP4_SERVICE_BINDING_PROTOCOL \
12 1.1.1.1.10.2 tls { 0x00720665, 0x67eb, 0x4a99, {0xba, 0xf7, 0xd3, 0xc3, 0x3a, 0x1c,0x7c, 0xc9}}
13 1.1.1.1.10.2 tls
14 1.1.1.1.10.2 tls #define EFI_TCP4_PROTOCOL \
15 1.1.1.1.10.2 tls { 0x65530bc7, 0xa359, 0x410f, {0xb0, 0x10, 0x5a, 0xad, 0xc7, 0xec, 0x2b, 0x62}}
16 1.1.1.1.10.2 tls
17 1.1.1.1.10.2 tls #define EFI_TCP6_SERVICE_BINDING_PROTOCOL \
18 1.1.1.1.10.2 tls { 0xec20eb79, 0x6c1a, 0x4664, {0x9a, 0xd, 0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64}}
19 1.1.1.1.10.2 tls
20 1.1.1.1.10.2 tls #define EFI_TCP6_PROTOCOL \
21 1.1.1.1.10.2 tls { 0x46e44855, 0xbd60, 0x4ab7, {0xab, 0xd, 0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77}}
22 1.1.1.1.10.2 tls
23 1.1.1.1.10.2 tls INTERFACE_DECL(_EFI_TCP4);
24 1.1.1.1.10.2 tls INTERFACE_DECL(_EFI_TCP6);
25 1.1.1.1.10.2 tls
26 1.1.1.1.10.2 tls typedef struct {
27 1.1.1.1.10.2 tls BOOLEAN UseDefaultAddress;
28 1.1.1.1.10.2 tls EFI_IPv4_ADDRESS StationAddress;
29 1.1.1.1.10.2 tls EFI_IPv4_ADDRESS SubnetMask;
30 1.1.1.1.10.2 tls UINT16 StationPort;
31 1.1.1.1.10.2 tls EFI_IPv4_ADDRESS RemoteAddress;
32 1.1.1.1.10.2 tls UINT16 RemotePort;
33 1.1.1.1.10.2 tls BOOLEAN ActiveFlag;
34 1.1.1.1.10.2 tls } EFI_TCP4_ACCESS_POINT;
35 1.1.1.1.10.2 tls
36 1.1.1.1.10.2 tls typedef struct {
37 1.1.1.1.10.2 tls UINT32 ReceiveBufferSize;
38 1.1.1.1.10.2 tls UINT32 SendBufferSize;
39 1.1.1.1.10.2 tls UINT32 MaxSynBackLog;
40 1.1.1.1.10.2 tls UINT32 ConnectionTimeout;
41 1.1.1.1.10.2 tls UINT32 DataRetries;
42 1.1.1.1.10.2 tls UINT32 FinTimeout;
43 1.1.1.1.10.2 tls UINT32 TimeWaitTimeout;
44 1.1.1.1.10.2 tls UINT32 KeepAliveProbes;
45 1.1.1.1.10.2 tls UINT32 KeepAliveTime;
46 1.1.1.1.10.2 tls UINT32 KeepAliveInterval;
47 1.1.1.1.10.2 tls BOOLEAN EnableNagle;
48 1.1.1.1.10.2 tls BOOLEAN EnableTimeStamp;
49 1.1.1.1.10.2 tls BOOLEAN EnableWindowScaling;
50 1.1.1.1.10.2 tls BOOLEAN EnableSelectiveAck;
51 1.1.1.1.10.2 tls BOOLEAN EnablePAthMtuDiscovery;
52 1.1.1.1.10.2 tls } EFI_TCP4_OPTION;
53 1.1.1.1.10.2 tls
54 1.1.1.1.10.2 tls typedef struct {
55 1.1.1.1.10.2 tls // Receiving Filters
56 1.1.1.1.10.2 tls // I/O parameters
57 1.1.1.1.10.2 tls UINT8 TypeOfService;
58 1.1.1.1.10.2 tls UINT8 TimeToLive;
59 1.1.1.1.10.2 tls
60 1.1.1.1.10.2 tls // Access Point
61 1.1.1.1.10.2 tls EFI_TCP4_ACCESS_POINT AccessPoint;
62 1.1.1.1.10.2 tls
63 1.1.1.1.10.2 tls // TCP Control Options
64 1.1.1.1.10.2 tls EFI_TCP4_OPTION *ControlOption;
65 1.1.1.1.10.2 tls } EFI_TCP4_CONFIG_DATA;
66 1.1.1.1.10.2 tls
67 1.1.1.1.10.2 tls typedef enum {
68 1.1.1.1.10.2 tls Tcp4StateClosed = 0,
69 1.1.1.1.10.2 tls Tcp4StateListen = 1,
70 1.1.1.1.10.2 tls Tcp4StateSynSent = 2,
71 1.1.1.1.10.2 tls Tcp4StateSynReceived = 3,
72 1.1.1.1.10.2 tls Tcp4StateEstablished = 4,
73 1.1.1.1.10.2 tls Tcp4StateFinWait1 = 5,
74 1.1.1.1.10.2 tls Tcp4StateFinWait2 = 6,
75 1.1.1.1.10.2 tls Tcp4StateClosing = 7,
76 1.1.1.1.10.2 tls Tcp4StateTimeWait = 8,
77 1.1.1.1.10.2 tls Tcp4StateCloseWait = 9,
78 1.1.1.1.10.2 tls Tcp4StateLastAck = 10
79 1.1.1.1.10.2 tls } EFI_TCP4_CONNECTION_STATE;
80 1.1.1.1.10.2 tls
81 1.1.1.1.10.2 tls typedef
82 1.1.1.1.10.2 tls EFI_STATUS
83 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_GET_MODE_DATA) (
84 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
85 1.1.1.1.10.2 tls OUT EFI_TCP4_CONNECTION_STATE *Tcp4State OPTIONAL,
86 1.1.1.1.10.2 tls OUT EFI_TCP4_CONFIG_DATA *Tcp4ConfigData OPTIONAL,
87 1.1.1.1.10.2 tls OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
88 1.1.1.1.10.2 tls OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
89 1.1.1.1.10.2 tls OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
90 1.1.1.1.10.2 tls );
91 1.1.1.1.10.2 tls
92 1.1.1.1.10.2 tls typedef
93 1.1.1.1.10.2 tls EFI_STATUS
94 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_CONFIGURE) (
95 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
96 1.1.1.1.10.2 tls IN EFI_TCP4_CONFIG_DATA *TcpConfigData OPTIONAL
97 1.1.1.1.10.2 tls );
98 1.1.1.1.10.2 tls
99 1.1.1.1.10.2 tls typedef
100 1.1.1.1.10.2 tls EFI_STATUS
101 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_ROUTES) (
102 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
103 1.1.1.1.10.2 tls IN BOOLEAN DeleteRoute,
104 1.1.1.1.10.2 tls IN EFI_IPv4_ADDRESS *SubnetAddress,
105 1.1.1.1.10.2 tls IN EFI_IPv4_ADDRESS *SubnetMask,
106 1.1.1.1.10.2 tls IN EFI_IPv4_ADDRESS *GatewayAddress
107 1.1.1.1.10.2 tls );
108 1.1.1.1.10.2 tls
109 1.1.1.1.10.2 tls typedef struct {
110 1.1.1.1.10.2 tls EFI_EVENT Event;
111 1.1.1.1.10.2 tls EFI_STATUS Status;
112 1.1.1.1.10.2 tls } EFI_TCP4_COMPLETION_TOKEN;
113 1.1.1.1.10.2 tls
114 1.1.1.1.10.2 tls typedef struct {
115 1.1.1.1.10.2 tls EFI_TCP4_COMPLETION_TOKEN CompletionToken;
116 1.1.1.1.10.2 tls } EFI_TCP4_CONNECTION_TOKEN;
117 1.1.1.1.10.2 tls
118 1.1.1.1.10.2 tls typedef
119 1.1.1.1.10.2 tls EFI_STATUS
120 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_CONNECT) (
121 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
122 1.1.1.1.10.2 tls IN EFI_TCP4_CONNECTION_TOKEN *ConnectionToken
123 1.1.1.1.10.2 tls );
124 1.1.1.1.10.2 tls
125 1.1.1.1.10.2 tls typedef struct {
126 1.1.1.1.10.2 tls EFI_TCP4_COMPLETION_TOKEN CompletionToken;
127 1.1.1.1.10.2 tls EFI_HANDLE NewChildHandle;
128 1.1.1.1.10.2 tls } EFI_TCP4_LISTEN_TOKEN;
129 1.1.1.1.10.2 tls
130 1.1.1.1.10.2 tls typedef
131 1.1.1.1.10.2 tls EFI_STATUS
132 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_ACCEPT) (
133 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
134 1.1.1.1.10.2 tls IN EFI_TCP4_LISTEN_TOKEN *ListenToken
135 1.1.1.1.10.2 tls );
136 1.1.1.1.10.2 tls
137 1.1.1.1.10.2 tls #define EFI_CONNECTION_FIN EFIERR(104)
138 1.1.1.1.10.2 tls #define EFI_CONNECTION_RESET EFIERR(105)
139 1.1.1.1.10.2 tls #define EFI_CONNECTION_REFUSED EFIERR(106)
140 1.1.1.1.10.2 tls
141 1.1.1.1.10.2 tls typedef struct {
142 1.1.1.1.10.2 tls UINT32 FragmentLength;
143 1.1.1.1.10.2 tls VOID *FragmentBuffer;
144 1.1.1.1.10.2 tls } EFI_TCP4_FRAGMENT_DATA;
145 1.1.1.1.10.2 tls
146 1.1.1.1.10.2 tls typedef struct {
147 1.1.1.1.10.2 tls BOOLEAN UrgentFlag;
148 1.1.1.1.10.2 tls UINT32 DataLength;
149 1.1.1.1.10.2 tls UINT32 FragmentCount;
150 1.1.1.1.10.2 tls EFI_TCP4_FRAGMENT_DATA FragmentTable[1];
151 1.1.1.1.10.2 tls } EFI_TCP4_RECEIVE_DATA;
152 1.1.1.1.10.2 tls
153 1.1.1.1.10.2 tls typedef struct {
154 1.1.1.1.10.2 tls BOOLEAN Push;
155 1.1.1.1.10.2 tls BOOLEAN Urgent;
156 1.1.1.1.10.2 tls UINT32 DataLength;
157 1.1.1.1.10.2 tls UINT32 FragmentCount;
158 1.1.1.1.10.2 tls EFI_TCP4_FRAGMENT_DATA FragmentTable[1];
159 1.1.1.1.10.2 tls } EFI_TCP4_TRANSMIT_DATA;
160 1.1.1.1.10.2 tls
161 1.1.1.1.10.2 tls typedef struct {
162 1.1.1.1.10.2 tls EFI_TCP4_COMPLETION_TOKEN CompletionToken;
163 1.1.1.1.10.2 tls union {
164 1.1.1.1.10.2 tls EFI_TCP4_RECEIVE_DATA *RxData;
165 1.1.1.1.10.2 tls EFI_TCP4_TRANSMIT_DATA *TxData;
166 1.1.1.1.10.2 tls } Packet;
167 1.1.1.1.10.2 tls } EFI_TCP4_IO_TOKEN;
168 1.1.1.1.10.2 tls
169 1.1.1.1.10.2 tls typedef
170 1.1.1.1.10.2 tls EFI_STATUS
171 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_TRANSMIT) (
172 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
173 1.1.1.1.10.2 tls IN EFI_TCP4_IO_TOKEN *Token
174 1.1.1.1.10.2 tls );
175 1.1.1.1.10.2 tls
176 1.1.1.1.10.2 tls typedef
177 1.1.1.1.10.2 tls EFI_STATUS
178 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_RECEIVE) (
179 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
180 1.1.1.1.10.2 tls IN EFI_TCP4_IO_TOKEN *Token
181 1.1.1.1.10.2 tls );
182 1.1.1.1.10.2 tls
183 1.1.1.1.10.2 tls typedef struct {
184 1.1.1.1.10.2 tls EFI_TCP4_COMPLETION_TOKEN CompletionToken;
185 1.1.1.1.10.2 tls BOOLEAN AbortOnClose;
186 1.1.1.1.10.2 tls } EFI_TCP4_CLOSE_TOKEN;
187 1.1.1.1.10.2 tls
188 1.1.1.1.10.2 tls typedef
189 1.1.1.1.10.2 tls EFI_STATUS
190 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_CLOSE)(
191 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
192 1.1.1.1.10.2 tls IN EFI_TCP4_CLOSE_TOKEN *CloseToken
193 1.1.1.1.10.2 tls );
194 1.1.1.1.10.2 tls
195 1.1.1.1.10.2 tls typedef
196 1.1.1.1.10.2 tls EFI_STATUS
197 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_CANCEL)(
198 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This,
199 1.1.1.1.10.2 tls IN EFI_TCP4_COMPLETION_TOKEN *Token OPTIONAL
200 1.1.1.1.10.2 tls );
201 1.1.1.1.10.2 tls
202 1.1.1.1.10.2 tls typedef
203 1.1.1.1.10.2 tls EFI_STATUS
204 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP4_POLL) (
205 1.1.1.1.10.2 tls IN struct _EFI_TCP4 *This
206 1.1.1.1.10.2 tls );
207 1.1.1.1.10.2 tls
208 1.1.1.1.10.2 tls typedef struct _EFI_TCP4 {
209 1.1.1.1.10.2 tls EFI_TCP4_GET_MODE_DATA GetModeData;
210 1.1.1.1.10.2 tls EFI_TCP4_CONFIGURE Configure;
211 1.1.1.1.10.2 tls EFI_TCP4_ROUTES Routes;
212 1.1.1.1.10.2 tls EFI_TCP4_CONNECT Connect;
213 1.1.1.1.10.2 tls EFI_TCP4_ACCEPT Accept;
214 1.1.1.1.10.2 tls EFI_TCP4_TRANSMIT Transmit;
215 1.1.1.1.10.2 tls EFI_TCP4_RECEIVE Receive;
216 1.1.1.1.10.2 tls EFI_TCP4_CLOSE Close;
217 1.1.1.1.10.2 tls EFI_TCP4_CANCEL Cancel;
218 1.1.1.1.10.2 tls EFI_TCP4_POLL Poll;
219 1.1.1.1.10.2 tls } EFI_TCP4;
220 1.1.1.1.10.2 tls
221 1.1.1.1.10.2 tls typedef enum {
222 1.1.1.1.10.2 tls Tcp6StateClosed = 0,
223 1.1.1.1.10.2 tls Tcp6StateListen = 1,
224 1.1.1.1.10.2 tls Tcp6StateSynSent = 2,
225 1.1.1.1.10.2 tls Tcp6StateSynReceived = 3,
226 1.1.1.1.10.2 tls Tcp6StateEstablished = 4,
227 1.1.1.1.10.2 tls Tcp6StateFinWait1 = 5,
228 1.1.1.1.10.2 tls Tcp6StateFinWait2 = 6,
229 1.1.1.1.10.2 tls Tcp6StateClosing = 7,
230 1.1.1.1.10.2 tls Tcp6StateTimeWait = 8,
231 1.1.1.1.10.2 tls Tcp6StateCloseWait = 9,
232 1.1.1.1.10.2 tls Tcp6StateLastAck = 10
233 1.1.1.1.10.2 tls } EFI_TCP6_CONNECTION_STATE;
234 1.1.1.1.10.2 tls
235 1.1.1.1.10.2 tls typedef struct {
236 1.1.1.1.10.2 tls EFI_IPv6_ADDRESS StationAddress;
237 1.1.1.1.10.2 tls UINT16 StationPort;
238 1.1.1.1.10.2 tls EFI_IPv6_ADDRESS RemoteAddress;
239 1.1.1.1.10.2 tls UINT16 RemotePort;
240 1.1.1.1.10.2 tls BOOLEAN ActiveFlag;
241 1.1.1.1.10.2 tls } EFI_TCP6_ACCESS_POINT;
242 1.1.1.1.10.2 tls
243 1.1.1.1.10.2 tls typedef struct {
244 1.1.1.1.10.2 tls UINT32 ReceiveBufferSize;
245 1.1.1.1.10.2 tls UINT32 SendBufferSize;
246 1.1.1.1.10.2 tls UINT32 MaxSynBackLog;
247 1.1.1.1.10.2 tls UINT32 ConnectionTimeout;
248 1.1.1.1.10.2 tls UINT32 DataRetries;
249 1.1.1.1.10.2 tls UINT32 FinTimeout;
250 1.1.1.1.10.2 tls UINT32 TimeWaitTimeout;
251 1.1.1.1.10.2 tls UINT32 KeepAliveProbes;
252 1.1.1.1.10.2 tls UINT32 KeepAliveTime;
253 1.1.1.1.10.2 tls UINT32 KeepAliveInterval;
254 1.1.1.1.10.2 tls BOOLEAN EnableNagle;
255 1.1.1.1.10.2 tls BOOLEAN EnableTimeStamp;
256 1.1.1.1.10.2 tls BOOLEAN EnableWindbowScaling;
257 1.1.1.1.10.2 tls BOOLEAN EnableSelectiveAck;
258 1.1.1.1.10.2 tls BOOLEAN EnablePathMtuDiscovery;
259 1.1.1.1.10.2 tls } EFI_TCP6_OPTION;
260 1.1.1.1.10.2 tls
261 1.1.1.1.10.2 tls typedef struct {
262 1.1.1.1.10.2 tls UINT8 TrafficClass;
263 1.1.1.1.10.2 tls UINT8 HopLimit;
264 1.1.1.1.10.2 tls EFI_TCP6_ACCESS_POINT AccessPoint;
265 1.1.1.1.10.2 tls EFI_TCP6_OPTION *ControlOption;
266 1.1.1.1.10.2 tls } EFI_TCP6_CONFIG_DATA;
267 1.1.1.1.10.2 tls
268 1.1.1.1.10.2 tls typedef
269 1.1.1.1.10.2 tls EFI_STATUS
270 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_GET_MODE_DATA) (
271 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
272 1.1.1.1.10.2 tls OUT EFI_TCP6_CONNECTION_STATE *Tcp6State OPTIONAL,
273 1.1.1.1.10.2 tls OUT EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL,
274 1.1.1.1.10.2 tls OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL,
275 1.1.1.1.10.2 tls OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
276 1.1.1.1.10.2 tls OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
277 1.1.1.1.10.2 tls );
278 1.1.1.1.10.2 tls
279 1.1.1.1.10.2 tls typedef
280 1.1.1.1.10.2 tls EFI_STATUS
281 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_CONFIGURE) (
282 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
283 1.1.1.1.10.2 tls IN EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL
284 1.1.1.1.10.2 tls );
285 1.1.1.1.10.2 tls
286 1.1.1.1.10.2 tls typedef struct {
287 1.1.1.1.10.2 tls EFI_EVENT Event;
288 1.1.1.1.10.2 tls EFI_STATUS Status;
289 1.1.1.1.10.2 tls } EFI_TCP6_COMPLETION_TOKEN;
290 1.1.1.1.10.2 tls
291 1.1.1.1.10.2 tls typedef struct {
292 1.1.1.1.10.2 tls EFI_TCP6_COMPLETION_TOKEN CompletionToken;
293 1.1.1.1.10.2 tls } EFI_TCP6_CONNECTION_TOKEN;
294 1.1.1.1.10.2 tls
295 1.1.1.1.10.2 tls typedef
296 1.1.1.1.10.2 tls EFI_STATUS
297 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_CONNECT) (
298 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
299 1.1.1.1.10.2 tls IN EFI_TCP6_CONNECTION_TOKEN *ConnectionToken
300 1.1.1.1.10.2 tls );
301 1.1.1.1.10.2 tls
302 1.1.1.1.10.2 tls typedef struct {
303 1.1.1.1.10.2 tls EFI_TCP6_COMPLETION_TOKEN CompletionToken;
304 1.1.1.1.10.2 tls EFI_HANDLE NewChildHandle;
305 1.1.1.1.10.2 tls } EFI_TCP6_LISTEN_TOKEN;
306 1.1.1.1.10.2 tls
307 1.1.1.1.10.2 tls typedef
308 1.1.1.1.10.2 tls EFI_STATUS
309 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_ACCEPT) (
310 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
311 1.1.1.1.10.2 tls IN EFI_TCP6_LISTEN_TOKEN *ListenToken
312 1.1.1.1.10.2 tls );
313 1.1.1.1.10.2 tls
314 1.1.1.1.10.2 tls typedef struct {
315 1.1.1.1.10.2 tls UINT32 FragmentLength;
316 1.1.1.1.10.2 tls VOID *FragmentBuffer;
317 1.1.1.1.10.2 tls } EFI_TCP6_FRAGMENT_DATA;
318 1.1.1.1.10.2 tls
319 1.1.1.1.10.2 tls typedef struct {
320 1.1.1.1.10.2 tls BOOLEAN UrgentFlag;
321 1.1.1.1.10.2 tls UINT32 DataLength;
322 1.1.1.1.10.2 tls UINT32 FragmentCount;
323 1.1.1.1.10.2 tls EFI_TCP6_FRAGMENT_DATA FragmentTable[1];
324 1.1.1.1.10.2 tls } EFI_TCP6_RECEIVE_DATA;
325 1.1.1.1.10.2 tls
326 1.1.1.1.10.2 tls typedef struct {
327 1.1.1.1.10.2 tls BOOLEAN Push;
328 1.1.1.1.10.2 tls BOOLEAN Urgent;
329 1.1.1.1.10.2 tls UINT32 DataLength;
330 1.1.1.1.10.2 tls UINT32 FragmentCount;
331 1.1.1.1.10.2 tls EFI_TCP6_FRAGMENT_DATA FragmentTable[1];
332 1.1.1.1.10.2 tls } EFI_TCP6_TRANSMIT_DATA;
333 1.1.1.1.10.2 tls
334 1.1.1.1.10.2 tls typedef struct {
335 1.1.1.1.10.2 tls EFI_TCP6_COMPLETION_TOKEN CompletionToken;
336 1.1.1.1.10.2 tls union {
337 1.1.1.1.10.2 tls EFI_TCP6_RECEIVE_DATA *RxData;
338 1.1.1.1.10.2 tls EFI_TCP6_TRANSMIT_DATA *TxData;
339 1.1.1.1.10.2 tls } Packet;
340 1.1.1.1.10.2 tls } EFI_TCP6_IO_TOKEN;
341 1.1.1.1.10.2 tls
342 1.1.1.1.10.2 tls typedef
343 1.1.1.1.10.2 tls EFI_STATUS
344 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_TRANSMIT) (
345 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
346 1.1.1.1.10.2 tls IN EFI_TCP6_IO_TOKEN *Token
347 1.1.1.1.10.2 tls );
348 1.1.1.1.10.2 tls
349 1.1.1.1.10.2 tls typedef
350 1.1.1.1.10.2 tls EFI_STATUS
351 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_RECEIVE) (
352 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
353 1.1.1.1.10.2 tls IN EFI_TCP6_IO_TOKEN *Token
354 1.1.1.1.10.2 tls );
355 1.1.1.1.10.2 tls
356 1.1.1.1.10.2 tls typedef struct {
357 1.1.1.1.10.2 tls EFI_TCP6_COMPLETION_TOKEN CompletionToken;
358 1.1.1.1.10.2 tls BOOLEAN AbortOnClose;
359 1.1.1.1.10.2 tls } EFI_TCP6_CLOSE_TOKEN;
360 1.1.1.1.10.2 tls
361 1.1.1.1.10.2 tls typedef
362 1.1.1.1.10.2 tls EFI_STATUS
363 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_CLOSE)(
364 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
365 1.1.1.1.10.2 tls IN EFI_TCP6_CLOSE_TOKEN *CloseToken
366 1.1.1.1.10.2 tls );
367 1.1.1.1.10.2 tls
368 1.1.1.1.10.2 tls typedef
369 1.1.1.1.10.2 tls EFI_STATUS
370 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_CANCEL)(
371 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This,
372 1.1.1.1.10.2 tls IN EFI_TCP6_COMPLETION_TOKEN *Token OPTIONAL
373 1.1.1.1.10.2 tls );
374 1.1.1.1.10.2 tls
375 1.1.1.1.10.2 tls typedef
376 1.1.1.1.10.2 tls EFI_STATUS
377 1.1.1.1.10.2 tls (EFIAPI *EFI_TCP6_POLL) (
378 1.1.1.1.10.2 tls IN struct _EFI_TCP6 *This
379 1.1.1.1.10.2 tls );
380 1.1.1.1.10.2 tls
381 1.1.1.1.10.2 tls typedef struct _EFI_TCP6 {
382 1.1.1.1.10.2 tls EFI_TCP6_GET_MODE_DATA GetModeData;
383 1.1.1.1.10.2 tls EFI_TCP6_CONFIGURE Configure;
384 1.1.1.1.10.2 tls EFI_TCP6_CONNECT Connect;
385 1.1.1.1.10.2 tls EFI_TCP6_ACCEPT Accept;
386 1.1.1.1.10.2 tls EFI_TCP6_TRANSMIT Transmit;
387 1.1.1.1.10.2 tls EFI_TCP6_RECEIVE Receive;
388 1.1.1.1.10.2 tls EFI_TCP6_CLOSE Close;
389 1.1.1.1.10.2 tls EFI_TCP6_CANCEL Cancel;
390 1.1.1.1.10.2 tls EFI_TCP6_POLL Poll;
391 1.1.1.1.10.2 tls } EFI_TCP6;
392 1.1.1.1.10.2 tls
393 1.1.1.1.10.2 tls #endif /* _EFI_TCP_H */
394