| /** @file | |
| The function declaration that provided for Socket Interface. | |
| Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR> | |
| This program and the accompanying materials | |
| are licensed and made available under the terms and conditions of the BSD License | |
| which accompanies this distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php. | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #ifndef _SOCK_IMPL_H_ | |
| #define _SOCK_IMPL_H_ | |
| #include "Socket.h" | |
| /** | |
| Signal a event with the given status. | |
| @param[in] Token The token's event is to be signaled. | |
| @param[in] TokenStatus The status to be sent with the event. | |
| **/ | |
| #define SIGNAL_TOKEN(Token, TokenStatus) \ | |
| do { \ | |
| (Token)->Status = (TokenStatus); \ | |
| gBS->SignalEvent ((Token)->Event); \ | |
| } while (0) | |
| #define SOCK_HEADER_SPACE (60 + 60 + 72) | |
| /** | |
| Process the TCP send data, buffer the tcp txdata and append | |
| the buffer to socket send buffer, then try to send it. | |
| @param[in] Sock Pointer to the socket. | |
| @param[in] TcpTxData Pointer to the application provided send buffer. | |
| @retval EFI_SUCCESS The operation completed successfully. | |
| @retval EFI_OUT_OF_RESOURCES Failed due to resource limits. | |
| **/ | |
| EFI_STATUS | |
| SockProcessTcpSndData ( | |
| IN SOCKET *Sock, | |
| IN VOID *TcpTxData | |
| ); | |
| /** | |
| Get received data from the socket layer to the receive token. | |
| @param[in, out] Sock Pointer to the socket. | |
| @param[in, out] RcvToken Pointer to the application provided receive token. | |
| @return The length of data received in this token. | |
| **/ | |
| UINT32 | |
| SockProcessRcvToken ( | |
| IN OUT SOCKET *Sock, | |
| IN OUT SOCK_IO_TOKEN *RcvToken | |
| ); | |
| /** | |
| Flush the sndBuffer and rcvBuffer of socket. | |
| @param[in, out] Sock Pointer to the socket. | |
| **/ | |
| VOID | |
| SockConnFlush ( | |
| IN OUT SOCKET *Sock | |
| ); | |
| /** | |
| Create a socket with initial data SockInitData. | |
| @param[in] SockInitData Pointer to the initial data of the socket. | |
| @return Pointer to the newly created socket, return NULL when exception occured. | |
| **/ | |
| SOCKET * | |
| SockCreate ( | |
| IN SOCK_INIT_DATA *SockInitData | |
| ); | |
| /** | |
| Destroy a socket. | |
| @param[in, out] Sock Pointer to the socket. | |
| **/ | |
| VOID | |
| SockDestroy ( | |
| IN OUT SOCKET *Sock | |
| ); | |
| #endif |