]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/Tcp4.h
Make variable names for protocol GUIDs consistent
[mirror_edk2.git] / MdePkg / Include / Protocol / Tcp4.h
Content-type: text/html ]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Protocol/Tcp4.h


500 - Internal Server Error

Malformed UTF-8 character (fatal) at (eval 6) line 1, <$fd> line 359.
CommitLineData
878ddf1f 1/** @file\r
2 EFI TCPv4 Protocol Definition\r
3 The EFI TCPv4 Service Binding Protocol is used to locate EFI TCPv4 Protocol drivers to create\r
4 and destroy child of the driver to communicate with other host using TCP protocol. \r
5 The EFI TCPv4 Protocol provides services to send and receive data stream. \r
6\r
7 Copyright (c) 2006, Intel Corporation \r
8 All rights reserved. This program and the accompanying materials \r
9 are licensed and made available under the terms and conditions of the BSD License \r
10 which accompanies this distribution. The full text of the license may be found at \r
11 http://opensource.org/licenses/bsd-license.php \r
12\r
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
15\r
16 Module Name: Tcp4.h\r
17\r
18**/\r
19\r
20#ifndef __EFI_TCP4_PROTOCOL_H__\r
21#define __EFI_TCP4_PROTOCOL_H__\r
22\r
23#define EFI_TCP4_SERVICE_BINDING_PROTOCOL_GUID \\r
24 { \\r
25 0x00720665, 0x67EB, 0x4a99, {0xBA, 0xF7, 0xD3, 0xC3, 0x3A, 0x1C, 0x7C, 0xC9 } \\r
26 }\r
27\r
28#define EFI_TCP4_PROTOCOL_GUID \\r
29 { \\r
30 0x65530BC7, 0xA359, 0x410f, {0xB0, 0x10, 0x5A, 0xAD, 0xC7, 0xEC, 0x2B, 0x62 } \\r
31 }\r
32\r
33typedef struct _EFI_TCP4_PROTOCOL EFI_TCP4_PROTOCOL;\r
34\r
35typedef struct {\r
36 EFI_IPv4_ADDRESS LocalAddress;\r
37 UINT16 LocalPort;\r
38 EFI_IPv4_ADDRESS RemoteAddress;\r
39 UINT16 RemotePort;\r
40} EFI_TCP4_SERVICE_POINT;\r
41\r
42typedef struct {\r
43 EFI_HANDLE DriverHandle;\r
44 UINTN ServiceCount;\r
45 EFI_TCP4_SERVICE_POINT Services[1];\r
46} EFI_TCP4_VARIABLE_DATA;\r
47\r
48typedef struct {\r
49 BOOLEAN UseDefaultAddress;\r
50 EFI_IPv4_ADDRESS StationAddress;\r
51 EFI_IPv4_ADDRESS SubnetMask;\r
52 UINT16 StationPort;\r
53 EFI_IPv4_ADDRESS RemoteAddress;\r
54 UINT16 RemotePort;\r
55 BOOLEAN ActiveFlag;\r
56} EFI_TCP4_ACCESS_POINT;\r
57\r
58typedef struct {\r
59 UINTN ReceiveBufferSize;\r
60 UINTN SendBufferSize;\r
61 UINTN MaxSynBackLog;\r
62 UINTN ConnectionTimeout;\r
63 UINTN DataRetries;\r
64 UINTN FinTimeout;\r
65 UINTN TimeWaitTimeout;\r
66 UINTN KeepAliveProbes;\r
67 UINTN KeepAliveTime;\r
68 UINTN KeepAliveInterval;\r
69 BOOLEAN EnableNagle;\r
70 BOOLEAN EnableTimeStamp;\r
71 BOOLEAN EnableWindowScaling;\r
72 BOOLEAN EnableSelectiveAck;\r
73 BOOLEAN EnablePathMtuDiscovery;\r
74} EFI_TCP4_OPTION;\r
75\r
76typedef struct {\r
77 //\r
78 // I/O parameters\r
79 //\r
80 UINT8 TypeOfService;\r
81 UINT8 TimeToLive;\r
82\r
83 //\r
84 // Access Point\r
85 //\r
86 EFI_TCP4_ACCESS_POINT AccessPoint;\r
87 \r
88 // \r
89 // TCP Control Options \r
90 // \r
91 EFI_TCP4_OPTION *ControlOption;\r
92} EFI_TCP4_CONFIG_DATA;\r
93\r
94typedef enum {\r
95 Tcp4StateClosed = 0,\r
96 Tcp4StateListen = 1,\r
97 Tcp4StateSynSent = 2,\r
98 Tcp4StateSynReceived = 3,\r
99 Tcp4StateEstablished = 4,\r
100 Tcp4StateFinWait1 = 5,\r
101 Tcp4StateFinWait2 = 6,\r
102 Tcp4StateClosing = 7,\r
103 Tcp4StateTimeWait = 8,\r
104 Tcp4StateCloseWait = 9,\r
105 Tcp4StateLastAck = 10\r
106} EFI_TCP4_CONNECTION_STATE;\r
107\r
108typedef struct {\r
109 EFI_EVENT Event;\r
110 EFI_STATUS Status;\r
111} EFI_TCP4_COMPLETION_TOKEN;\r
112\r
113typedef struct {\r
114 EFI_TCP4_COMPLETION_TOKEN CompletionToken;\r
115} EFI_TCP4_CONNECTION_TOKEN;\r
116\r
117typedef struct {\r
118 EFI_TCP4_COMPLETION_TOKEN CompletionToken;\r
119 EFI_HANDLE NewChildHandle;\r
120} EFI_TCP4_LISTEN_TOKEN;\r
121\r
122typedef struct {\r
123 UINTN FragmentLength;\r
124 VOID *FragmentBuffer;\r
125} EFI_TCP4_FRAGMENT_DATA;\r
126\r
127typedef struct {\r
128 BOOLEAN UrgentFlag;\r
129 IN OUT UINTN DataLength;\r
130 UINTN FragmentCount;\r
131 EFI_TCP4_FRAGMENT_DATA FragmentTable[1];\r
132} EFI_TCP4_RECEIVE_DATA; \r
133\r
134typedef struct { \r
135 BOOLEAN Push;\r
136 BOOLEAN Urgent;\r
137 UINTN DataLength;\r
138 UINTN FragmentCount;\r
139 EFI_TCP4_FRAGMENT_DATA FragmentTable[1];\r
140} EFI_TCP4_TRANSMIT_DATA;\r
141\r
142typedef struct {\r
143 EFI_TCP4_COMPLETION_TOKEN CompletionToken;\r
144 union {\r
145 EFI_TCP4_RECEIVE_DATA *RxData;\r
146 EFI_TCP4_TRANSMIT_DATA *TxData;\r
147 } Packet;\r
148} EFI_TCP4_IO_TOKEN;\r
149\r
150typedef struct {\r
151 EFI_TCP4_COMPLETION_TOKEN CompletionToken;\r
152 BOOLEAN AbortOnClose;\r
153} EFI_TCP4_CLOSE_TOKEN;\r
154\r
155//\r
156// Interface definition for TCP4 protocol\r
157//\r
158\r
159/**\r
160 Get the current operational status.\r
161\r
162 @param This Pointer to the EFI_TCP4_PROTOCOL instance.\r
163 @param Tcp4State Pointer to the buffer to receive the current TCP state.\r
164 @param Tcp4ConfigData Pointer to the buffer to receive the current TCP configuration.\r
165 @param Ip4ModeData Pointer to the buffer to receive the current IPv4 configuration\r
166 data used by the TCPv4 instance.\r
167 @param MnpConfigData Pointer to the buffer to receive the current MNP configuration\r
168 data used indirectly by the TCPv4 instance.\r
169 @param SnpModeData Pointer to the buffer to receive the current SNP configuration\r
170 data used indirectly by the TCPv4 instance.\r
171\r
172 @retval EFI_SUCCESS The mode data was read.\r
173 @retval EFI_INVALID_PARAMETER This is NULL.\r
174