]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/TcpDxe/SockImpl.h
NetworkPkg: Add missed character in copyright.
[mirror_edk2.git] / NetworkPkg / TcpDxe / SockImpl.h
1 /** @file
2 The function declaration that provided for Socket Interface.
3
4 Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef _SOCK_IMPL_H_
17 #define _SOCK_IMPL_H_
18
19 #include "Socket.h"
20
21 /**
22 Signal a event with the given status.
23
24 @param[in] Token The token's event is to be signaled.
25 @param[in] TokenStatus The status to be sent with the event.
26
27 **/
28 #define SIGNAL_TOKEN(Token, TokenStatus) \
29 do { \
30 (Token)->Status = (TokenStatus); \
31 gBS->SignalEvent ((Token)->Event); \
32 } while (0)
33
34 #define SOCK_HEADER_SPACE (60 + 60 + 72)
35
36 /**
37 Process the TCP send data, buffer the tcp txdata and append
38 the buffer to socket send buffer, then try to send it.
39
40 @param[in] Sock Pointer to the socket.
41 @param[in] TcpTxData Pointer to the application provided send buffer.
42
43 @retval EFI_SUCCESS The operation completed successfully.
44 @retval EFI_OUT_OF_RESOURCES Failed due to resource limits.
45
46 **/
47 EFI_STATUS
48 SockProcessTcpSndData (
49 IN SOCKET *Sock,
50 IN VOID *TcpTxData
51 );
52
53 /**
54 Get received data from the socket layer to the receive token.
55
56 @param[in, out] Sock Pointer to the socket.
57 @param[in, out] RcvToken Pointer to the application provided receive token.
58
59 @return The length of data received in this token.
60
61 **/
62 UINT32
63 SockProcessRcvToken (
64 IN OUT SOCKET *Sock,
65 IN OUT SOCK_IO_TOKEN *RcvToken
66 );
67
68 /**
69 Flush the sndBuffer and rcvBuffer of socket.
70
71 @param[in, out] Sock Pointer to the socket.
72
73 **/
74 VOID
75 SockConnFlush (
76 IN OUT SOCKET *Sock
77 );
78
79 /**
80 Cancel the tokens in the specific token list.
81
82 @param[in] Token Pointer to the Token. If NULL, all tokens
83 in SpecifiedTokenList will be canceled.
84 @param[in, out] SpecifiedTokenList Pointer to the token list to be checked.
85
86 @retval EFI_SUCCESS Cancel the tokens in the specific token listsuccessfully.
87 @retval EFI_NOT_FOUND The Token is not found in SpecifiedTokenList.
88
89 **/
90 EFI_STATUS
91 SockCancelToken (
92 IN SOCK_COMPLETION_TOKEN *Token,
93 IN OUT LIST_ENTRY *SpecifiedTokenList
94 );
95
96 /**
97 Create a socket with initial data SockInitData.
98
99 @param[in] SockInitData Pointer to the initial data of the socket.
100
101 @return Pointer to the newly created socket, return NULL when exception occured.
102
103 **/
104 SOCKET *
105 SockCreate (
106 IN SOCK_INIT_DATA *SockInitData
107 );
108
109 /**
110 Destroy a socket.
111
112 @param[in, out] Sock Pointer to the socket.
113
114 **/
115 VOID
116 SockDestroy (
117 IN OUT SOCKET *Sock
118 );
119
120 #endif