]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Func.h
1. Add DPC protocol and DpcLib library in MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Tcp4Dxe / Tcp4Func.h
CommitLineData
83cbd279 1/** @file\r
2\r
3Copyright (c) 2005 - 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 Tcp4Func.h\r
15\r
16Abstract:\r
17\r
18\r
19**/\r
20\r
21#ifndef _TCP4_FUNC_H_\r
22#define _TCP4_FUNC_H_\r
23\r
24//\r
25// Declaration of all the functions in TCP\r
26// protocol. It is intended to keep tcp.h\r
27// clear.\r
28//\r
29\r
30//\r
31// Functions in tcp.c\r
32//\r
33BOOLEAN\r
34TcpFindTcbByPeer (\r
35 IN EFI_IPv4_ADDRESS *Addr,\r
36 IN TCP_PORTNO Port\r
37 );\r
38\r
39TCP_CB *\r
40TcpLocateTcb (\r
41 IN TCP_PORTNO LocalPort,\r
42 IN UINT32 LocalIp,\r
43 IN TCP_PORTNO RemotePort,\r
44 IN UINT32 RemoteIp,\r
45 IN BOOLEAN Syn\r
46 );\r
47\r
48INTN\r
49TcpInsertTcb (\r
50 IN TCP_CB *Tcb\r
51 );\r
52\r
53TCP_CB *\r
54TcpCloneTcb (\r
55 IN TCP_CB *Tcb\r
56 );\r
57\r
58TCP_SEQNO\r
59TcpGetIss (\r
60 VOID\r
61 );\r
62\r
63VOID\r
64TcpInitTcbLocal (\r
65 IN TCP_CB *Tcb\r
66 );\r
67\r
68VOID\r
69TcpInitTcbPeer (\r
70 IN TCP_CB *Tcb,\r
71 IN TCP_SEG *Seg,\r
72 IN TCP_OPTION *Opt\r
73 );\r
74\r
75UINT16\r
76TcpGetRcvMss (\r
77 IN SOCKET *Sock\r
78 );\r
79\r
80VOID\r
81TcpSetState (\r
82 IN TCP_CB *Tcb,\r
83 IN UINT8 State\r
84 );\r
85\r
86//\r
87// Functions in Tcp4Output.c\r
88//\r
89INTN\r
90TcpSendIpPacket (\r
91 IN TCP_CB *Tcb,\r
92 IN NET_BUF *Nbuf,\r
93 IN UINT32 Src,\r
94 IN UINT32 Dst\r
95 );\r
96\r
97INTN\r
98TcpToSendData (\r
99 IN TCP_CB *Tcb,\r
100 IN INTN Force\r
101 );\r
102\r
103VOID\r
104TcpToSendAck (\r
105 IN TCP_CB *Tcb\r
106 );\r
107\r
108VOID\r
109TcpSendAck (\r
110 IN TCP_CB *Tcb\r
111 );\r
112\r
113INTN\r
114TcpSendZeroProbe (\r
115 IN TCP_CB *Tcb\r
116 );\r
117\r
118INTN\r
119TcpDeliverData (\r
120 IN TCP_CB *Tcb\r
121 );\r
122\r
123INTN\r
124TcpSendReset (\r
125 IN TCP_CB *Tcb,\r
126 IN TCP_HEAD *Head,\r
127 IN INT32 Len,\r
128 IN UINT32 Local,\r
129 IN UINT32 Remote\r
130 );\r
131\r
132UINT32\r
133TcpRcvWinOld (\r
134 IN TCP_CB *Tcb\r
135 );\r
136\r
137UINT32\r
138TcpRcvWinNow (\r
139 IN TCP_CB *Tcb\r
140 );\r
141\r
142INTN\r
143TcpRetransmit (\r
144 IN TCP_CB *Tcb,\r
145 IN TCP_SEQNO Seq\r
146 );\r
147\r
148UINT32\r
149TcpDataToSend (\r
150 IN TCP_CB *Tcb,\r
151 IN INTN Force\r
152 );\r
153\r
154INTN\r
155TcpVerifySegment (\r
156 IN NET_BUF *Nbuf\r
157 );\r
158\r
159INTN\r
160TcpCheckSndQue (\r
161 IN NET_LIST_ENTRY *Head\r
162 );\r
163\r
164NET_BUF *\r
165TcpGetSegmentSndQue (\r
166 IN TCP_CB *Tcb,\r
167 IN TCP_SEQNO Seq,\r
168 IN UINT32 Len\r
169 );\r
170\r
171NET_BUF *\r
172TcpGetSegmentSock (\r
173 IN TCP_CB *Tcb,\r
174 IN TCP_SEQNO Seq,\r
175 IN UINT32 Len\r
176 );\r
177\r
178NET_BUF *\r
179TcpGetSegment (\r
180 IN TCP_CB *Tcb,\r
181 IN TCP_SEQNO Seq,\r
182 IN UINT32 Len\r
183 );\r
184\r
185TCP_SEQNO\r
186TcpGetMaxSndNxt (\r
187 IN TCP_CB *Tcb\r
188 );\r
189\r
190//\r
191// Functions from Tcp4Input.c\r
192//\r
193VOID\r
194TcpIcmpInput (\r
195 IN NET_BUF *Nbuf,\r
196 IN ICMP_ERROR IcmpErr,\r
197 IN UINT32 Src,\r
198 IN UINT32 Dst\r
199 );\r
200\r
201INTN\r
202TcpInput (\r
203 IN NET_BUF *Nbuf,\r
204 IN UINT32 Src,\r
205 IN UINT32 Dst\r
206 );\r
207\r
208INTN\r
209TcpSeqAcceptable (\r
210 IN TCP_CB *Tcb,\r
211 IN TCP_SEG *Seg\r
212 );\r
213\r
214VOID\r
215TcpFastRecover (\r
216 IN TCP_CB *Tcb,\r
217 IN TCP_SEG *Seg\r
218 );\r
219\r
220VOID\r
221TcpFastLossRecover (\r
222 IN TCP_CB *Tcb,\r
223 IN TCP_SEG *Seg\r
224 );\r
225\r
226VOID\r
227TcpComputeRtt (\r
228 IN TCP_CB *Tcb,\r
229 IN UINT32 Measure\r
230 );\r
231\r
232INTN\r
233TcpTrimInWnd (\r
234 IN TCP_CB *Tcb,\r
235 IN NET_BUF *Buf\r
236 );\r
237\r
238VOID\r
239TcpQueueData (\r
240 IN TCP_CB *Tcb,\r
241 IN NET_BUF *Nbuf\r
242 );\r
243\r
244VOID\r
245TcpAdjustSndQue (\r
246 IN TCP_CB *Tcb,\r
247 IN TCP_SEQNO Ack\r
248 );\r
249\r
250//\r
251// Functions from Tcp4Misc.c\r
252//\r
253UINT16\r
254TcpChecksum (\r
255 IN NET_BUF *Buf,\r
256 IN UINT16 HeadChecksum\r
257 );\r
258\r
259TCP_SEG *\r
260TcpFormatNetbuf (\r
261 IN TCP_CB *Tcb,\r
262 IN NET_BUF *Nbuf\r
263 );\r
264\r
265VOID\r
266TcpOnAppConnect (\r
267 IN TCP_CB *Tcb\r
268 );\r
269\r
270INTN\r
271TcpOnAppConsume (\r
272 IN TCP_CB *Tcb\r
273 );\r
274\r
275VOID\r
276TcpOnAppClose (\r
277 IN TCP_CB *Tcb\r
278 );\r
279\r
280INTN\r
281TcpOnAppSend (\r
282 IN TCP_CB *Tcb\r
283 );\r
284\r
285VOID\r
286TcpOnAppAbort (\r
287 IN TCP_CB *Tcb\r
288 );\r
289\r
290VOID\r
291TcpResetConnection (\r
292 IN TCP_CB *Tcb\r
293 );\r
294\r
295//\r
296// Functions in Tcp4Timer.c\r
297//\r
298VOID\r
299TcpClose (\r
300 IN TCP_CB *Tcb\r
301 );\r
302\r
303VOID\r
304EFIAPI\r
305TcpTicking (\r
306 IN EFI_EVENT Event,\r
307 IN VOID *Context\r
308 );\r
309\r
310VOID\r
311TcpSetTimer (\r
312 IN TCP_CB *Tcb,\r
313 IN UINT16 Timer,\r
314 IN UINT32 TimeOut\r
315 );\r
316\r
317VOID\r
318TcpClearTimer (\r
319 IN TCP_CB *Tcb,\r
320 IN UINT16 Timer\r
321 );\r
322\r
323VOID\r
324TcpClearAllTimer (\r
325 IN TCP_CB *Tcb\r
326 );\r
327\r
328VOID\r
329TcpSetProbeTimer (\r
330 IN TCP_CB *Tcb\r
331 );\r
332\r
333VOID\r
334TcpSetKeepaliveTimer (\r
335 IN TCP_CB *Tcb\r
336 );\r
337\r
338VOID\r
339TcpBackoffRto (\r
340 IN TCP_CB *Tcb\r
341 );\r
342\r
343EFI_STATUS\r
344TcpSetVariableData (\r
345 IN TCP4_SERVICE_DATA *Tcp4Service\r
346 );\r
347\r
348VOID\r
349TcpClearVariableData (\r
350 IN TCP4_SERVICE_DATA *Tcp4Service\r
351 );\r
352\r
353EFI_STATUS\r
354TcpInstallDevicePath (\r
355 IN SOCKET *Sock\r
356 );\r
357\r
358#endif\r