]> git.proxmox.com Git - mirror_edk2.git/blame - NetworkPkg/TcpDxe/SockImpl.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / NetworkPkg / TcpDxe / SockImpl.h
CommitLineData
a3bcde70
HT
1/** @file\r
2 The function declaration that provided for Socket Interface.\r
3\r
f75a7f56 4 Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
a3bcde70 5\r
ecf98fbc 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
a3bcde70
HT
7\r
8**/\r
9\r
10#ifndef _SOCK_IMPL_H_\r
11#define _SOCK_IMPL_H_\r
12\r
13#include "Socket.h"\r
d555699b 14#include "TcpMain.h"\r
a3bcde70
HT
15\r
16/**\r
17 Signal a event with the given status.\r
18\r
19 @param[in] Token The token's event is to be signaled.\r
20 @param[in] TokenStatus The status to be sent with the event.\r
21\r
22**/\r
23#define SIGNAL_TOKEN(Token, TokenStatus) \\r
24 do { \\r
25 (Token)->Status = (TokenStatus); \\r
26 gBS->SignalEvent ((Token)->Event); \\r
27 } while (0)\r
28\r
d1050b9d 29#define SOCK_HEADER_SPACE (60 + 60 + 72)\r
a3bcde70
HT
30\r
31/**\r
32 Process the TCP send data, buffer the tcp txdata and append\r
33 the buffer to socket send buffer, then try to send it.\r
34\r
35 @param[in] Sock Pointer to the socket.\r
36 @param[in] TcpTxData Pointer to the application provided send buffer.\r
37\r
38 @retval EFI_SUCCESS The operation completed successfully.\r
39 @retval EFI_OUT_OF_RESOURCES Failed due to resource limits.\r
40\r
41**/\r
42EFI_STATUS\r
43SockProcessTcpSndData (\r
d1050b9d
MK
44 IN SOCKET *Sock,\r
45 IN VOID *TcpTxData\r
a3bcde70
HT
46 );\r
47\r
48/**\r
49 Get received data from the socket layer to the receive token.\r
50\r
51 @param[in, out] Sock Pointer to the socket.\r
52 @param[in, out] RcvToken Pointer to the application provided receive token.\r
53\r
54 @return The length of data received in this token.\r
55\r
56**/\r
57UINT32\r
58SockProcessRcvToken (\r
d1050b9d
MK
59 IN OUT SOCKET *Sock,\r
60 IN OUT SOCK_IO_TOKEN *RcvToken\r
a3bcde70
HT
61 );\r
62\r
63/**\r
64 Flush the sndBuffer and rcvBuffer of socket.\r
65\r
66 @param[in, out] Sock Pointer to the socket.\r
67\r
68**/\r
69VOID\r
70SockConnFlush (\r
d1050b9d 71 IN OUT SOCKET *Sock\r
a3bcde70
HT
72 );\r
73\r
5ffe214a
JW
74/**\r
75 Cancel the tokens in the specific token list.\r
76\r
f75a7f56
LG
77 @param[in] Token Pointer to the Token. If NULL, all tokens\r
78 in SpecifiedTokenList will be canceled.\r
5ffe214a 79 @param[in, out] SpecifiedTokenList Pointer to the token list to be checked.\r
f75a7f56 80\r
5ffe214a
JW
81 @retval EFI_SUCCESS Cancel the tokens in the specific token listsuccessfully.\r
82 @retval EFI_NOT_FOUND The Token is not found in SpecifiedTokenList.\r
f75a7f56 83\r
5ffe214a
JW
84**/\r
85EFI_STATUS\r
86SockCancelToken (\r
87 IN SOCK_COMPLETION_TOKEN *Token,\r
88 IN OUT LIST_ENTRY *SpecifiedTokenList\r
89 );\r
90\r
a3bcde70
HT
91/**\r
92 Create a socket with initial data SockInitData.\r
93\r
94 @param[in] SockInitData Pointer to the initial data of the socket.\r
95\r
4cefb5e9 96 @return Pointer to the newly created socket, return NULL when exception occurred.\r
a3bcde70
HT
97\r
98**/\r
99SOCKET *\r
100SockCreate (\r
d1050b9d 101 IN SOCK_INIT_DATA *SockInitData\r
a3bcde70
HT
102 );\r
103\r
104/**\r
105 Destroy a socket.\r
106\r
107 @param[in, out] Sock Pointer to the socket.\r
108\r
109**/\r
110VOID\r
111SockDestroy (\r
d1050b9d 112 IN OUT SOCKET *Sock\r
a3bcde70
HT
113 );\r
114\r
115#endif\r