summaryrefslogtreecommitdiff
path: root/NetworkPkg/TcpDxe/Socket.h
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2017-04-27 11:16:34 +0800
committerGuo Mang <mang.guo@intel.com>2017-04-27 11:16:34 +0800
commit098f8621634f1cbdd1253c9957eed09a505223f5 (patch)
tree13783836f52f77e37b32fc982cd82a1ee5888676 /NetworkPkg/TcpDxe/Socket.h
parent9f72a84180605527643891f5c27b8f9f31c43006 (diff)
downloadedk2-platforms-098f8621634f1cbdd1253c9957eed09a505223f5.tar.xz
NetWorkPkg: Move to new location
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'NetworkPkg/TcpDxe/Socket.h')
-rw-r--r--NetworkPkg/TcpDxe/Socket.h942
1 files changed, 0 insertions, 942 deletions
diff --git a/NetworkPkg/TcpDxe/Socket.h b/NetworkPkg/TcpDxe/Socket.h
deleted file mode 100644
index 371e9abd84..0000000000
--- a/NetworkPkg/TcpDxe/Socket.h
+++ /dev/null
@@ -1,942 +0,0 @@
-/** @file
- Common head file for TCP socket.
-
- Copyright (c) 2009 - 2016, 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 _SOCKET_H_
-#define _SOCKET_H_
-
-#include <Uefi.h>
-
-#include <Protocol/Tcp4.h>
-#include <Protocol/Tcp6.h>
-
-#include <Library/NetLib.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/UefiRuntimeServicesTableLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/UefiLib.h>
-#include <Library/DpcLib.h>
-
-#define SOCK_SND_BUF 0
-#define SOCK_RCV_BUF 1
-
-#define SOCK_BUFF_LOW_WATER (2 * 1024)
-#define SOCK_RCV_BUFF_SIZE (8 * 1024)
-#define SOCK_SND_BUFF_SIZE (8 * 1024)
-#define SOCK_BACKLOG 5
-
-#define PROTO_RESERVED_LEN 20
-
-#define SO_NO_MORE_DATA 0x0001
-
-//
-//
-//
-// When a socket is created it enters into SO_UNCONFIGURED,
-// no actions can be taken on this socket, only after calling
-// SockConfigure. The state transition diagram of socket is
-// as following:
-//
-// SO_UNCONFIGURED --- SO_CONFIGURED --- SO_CONNECTING
-// ^ | |
-// | ---> SO_LISTENING |
-// | |
-// |------------------SO_DISCONNECTING<-- SO_CONNECTED
-//
-// A passive socket can only go into SO_LISTENING and
-// SO_UNCONFIGURED state. SO_XXXING state is a middle state
-// when a socket is undergoing a protocol procedure such
-// as requesting a TCP connection.
-//
-//
-//
-
-///
-/// Socket state
-///
-#define SO_CLOSED 0
-#define SO_LISTENING 1
-#define SO_CONNECTING 2
-#define SO_CONNECTED 3
-#define SO_DISCONNECTING 4
-
-///
-/// Socket configure state
-///
-#define SO_UNCONFIGURED 0
-#define SO_CONFIGURED_ACTIVE 1
-#define SO_CONFIGURED_PASSIVE 2
-#define SO_NO_MAPPING 3
-
-///
-/// The request issued from socket layer to protocol layer.
-///
-#define SOCK_ATTACH 0 ///< Attach current socket to a new PCB
-#define SOCK_DETACH 1 ///< Detach current socket from the PCB
-#define SOCK_CONFIGURE 2 ///< Configure attached PCB
-#define SOCK_FLUSH 3 ///< Flush attached PCB
-#define SOCK_SND 4 ///< Need protocol to send something
-#define SOCK_SNDPUSH 5 ///< Need protocol to send pushed data
-#define SOCK_SNDURG 6 ///< Need protocol to send urgent data
-#define SOCK_CONSUMED 7 ///< Application has retrieved data from socket
-#define SOCK_CONNECT 8 ///< Need to connect to a peer
-#define SOCK_CLOSE 9 ///< Need to close the protocol process
-#define SOCK_ABORT 10 ///< Need to reset the protocol process
-#define SOCK_POLL 11 ///< Need to poll to the protocol layer
-#define SOCK_ROUTE 12 ///< Need to add a route information
-#define SOCK_MODE 13 ///< Need to get the mode data of the protocol
-#define SOCK_GROUP 14 ///< Need to join a mcast group
-
-/**
- Set socket SO_NO_MORE_DATA flag.
-
- @param[in] Sock Pointer to the socket
-
-**/
-#define SOCK_NO_MORE_DATA(Sock) ((Sock)->Flag |= SO_NO_MORE_DATA)
-
-/**
- Check whether the socket is unconfigured.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is unconfigued.
- @retval FALSE The socket is not unconfigued.
-
-**/
-#define SOCK_IS_UNCONFIGURED(Sock) ((Sock)->ConfigureState == SO_UNCONFIGURED)
-
-/**
- Check whether the socket is configured.
-
- @param[in] Sock Pointer to the socket
-
- @retval TRUE The socket is configued
- @retval FALSE The socket is not configued
-
-**/
-#define SOCK_IS_CONFIGURED(Sock) \
- (((Sock)->ConfigureState == SO_CONFIGURED_ACTIVE) || \
- ((Sock)->ConfigureState == SO_CONFIGURED_PASSIVE))
-
-/**
- Check whether the socket is configured to active mode.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is configued to active mode.
- @retval FALSE The socket is not configued to active mode.
-
-**/
-#define SOCK_IS_CONFIGURED_ACTIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_ACTIVE)
-
-/**
- Check whether the socket is configured to passive mode.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is configued to passive mode.
- @retval FALSE The socket is not configued to passive mode.
-
-**/
-#define SOCK_IS_CONNECTED_PASSIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_PASSIVE)
-
-/**
- Check whether the socket is mapped.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is not mapping.
- @retval FALSE The socket is mapped.
-
-**/
-#define SOCK_IS_NO_MAPPING(Sock) ((Sock)->ConfigureState == SO_NO_MAPPING)
-
-/**
- Check whether the socket is closed.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is closed.
- @retval FALSE The socket is not closed.
-
-**/
-#define SOCK_IS_CLOSED(Sock) ((Sock)->State == SO_CLOSED)
-
-/**
- Check whether the socket is listening.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is listening.
- @retval FALSE The socket is not listening.
-
-**/
-#define SOCK_IS_LISTENING(Sock) ((Sock)->State == SO_LISTENING)
-
-/**
- Check whether the socket is connecting.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is connecting.
- @retval FALSE The socket is not connecting.
-
-**/
-#define SOCK_IS_CONNECTING(Sock) ((Sock)->State == SO_CONNECTING)
-
-/**
- Check whether the socket has connected.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket has connected.
- @retval FALSE The socket has not connected.
-
-**/
-#define SOCK_IS_CONNECTED(Sock) ((Sock)->State == SO_CONNECTED)
-
-/**
- Check whether the socket is disconnecting.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is disconnecting.
- @retval FALSE The socket is not disconnecting.
-
-**/
-#define SOCK_IS_DISCONNECTING(Sock) ((Sock)->State == SO_DISCONNECTING)
-
-/**
- Check whether the socket is no more data.
-
- @param[in] Sock Pointer to the socket.
-
- @retval TRUE The socket is no more data.
- @retval FALSE The socket still has data.
-
-**/
-#define SOCK_IS_NO_MORE_DATA(Sock) (0 != ((Sock)->Flag & SO_NO_MORE_DATA))
-
-/**
- Set the size of the receive buffer.
-
- @param[in] Sock Pointer to the socket.
- @param[in] Size The size to set.
-
-**/
-#define SET_RCV_BUFFSIZE(Sock, Size) ((Sock)->RcvBuffer.HighWater = (Size))
-
-/**
- Get the size of the receive buffer.
-
- @param[in] Sock Pointer to the socket.
-
- @return The receive buffer size.
-
-**/
-#define GET_RCV_BUFFSIZE(Sock) ((Sock)->RcvBuffer.HighWater)
-
-/**
- Get the size of the receive data.
-
- @param[in] Sock Pointer to the socket.
-
- @return The received data size.
-
-**/
-#define GET_RCV_DATASIZE(Sock) (((Sock)->RcvBuffer.DataQueue)->BufSize)
-
-/**
- Set the size of the send buffer.
-
- @param[in] Sock Pointer to the socket.
- @param[in] Size The size to set.
-
-**/
-#define SET_SND_BUFFSIZE(Sock, Size) ((Sock)->SndBuffer.HighWater = (Size))
-
-/**
- Get the size of the send buffer.
-
- @param[in] Sock Pointer to the socket.
-
- @return The send buffer size.
-
-**/
-#define GET_SND_BUFFSIZE(Sock) ((Sock)->SndBuffer.HighWater)
-
-/**
- Get the size of the send data.
-
- @param[in] Sock Pointer to the socket.
-
- @return The send data size.
-
-**/
-#define GET_SND_DATASIZE(Sock) (((Sock)->SndBuffer.DataQueue)->BufSize)
-
-/**
- Set the backlog value of the socket.
-
- @param[in] Sock Pointer to the socket.
- @param[in] Value The value to set.
-
-**/
-#define SET_BACKLOG(Sock, Value) ((Sock)->BackLog = (Value))
-
-/**
- Get the backlog value of the socket.
-
- @param[in] Sock Pointer to the socket.
-
- @return The backlog value.
-
-**/
-#define GET_BACKLOG(Sock) ((Sock)->BackLog)
-
-/**
- Set the socket with error state.
-
- @param[in] Sock Pointer to the socket.
- @param[in] Error The error state.
-
-**/
-#define SOCK_ERROR(Sock, Error) ((Sock)->SockError = (Error))
-
-#define SOCK_SIGNATURE SIGNATURE_32 ('S', 'O', 'C', 'K')
-
-#define SOCK_FROM_THIS(a) CR ((a), SOCKET, NetProtocol, SOCK_SIGNATURE)
-
-#define SOCK_FROM_TOKEN(Token) (((SOCK_TOKEN *) (Token))->Sock)
-
-#define PROTO_TOKEN_FORM_SOCK(SockToken, Type) ((Type *) (((SOCK_TOKEN *) (SockToken))->Token))
-
-typedef struct _TCP_SOCKET SOCKET;
-
-///
-/// Socket completion token
-///
-typedef struct _SOCK_COMPLETION_TOKEN {
- EFI_EVENT Event; ///< The event to be issued
- EFI_STATUS Status; ///< The status to be issued
-} SOCK_COMPLETION_TOKEN;
-
-typedef union {
- VOID *RxData;
- VOID *TxData;
-} SOCK_IO_DATA;
-
-///
-/// The application token with data packet
-///
-typedef struct _SOCK_IO_TOKEN {
- SOCK_COMPLETION_TOKEN Token;
- SOCK_IO_DATA Packet;
-} SOCK_IO_TOKEN;
-
-///
-/// The socket type.
-///
-typedef enum {
- SockDgram, ///< This socket providing datagram service
- SockStream ///< This socket providing stream service
-} SOCK_TYPE;
-
-///
-/// The buffer structure of rcvd data and send data used by socket.
-///
-typedef struct _SOCK_BUFFER {
- UINT32 HighWater; ///< The buffersize upper limit of sock_buffer
- UINT32 LowWater; ///< The low warter mark of sock_buffer
- NET_BUF_QUEUE *DataQueue; ///< The queue to buffer data
-} SOCK_BUFFER;
-
-/**
- The handler of protocol for request from socket.
-
- @param[in] Socket The socket issuing the request to protocol.
- @param[in] Request The request issued by socket.
- @param[in] RequestData The request related data.
-
- @retval EFI_SUCCESS The socket request is completed successfully.
- @retval other The error status returned by the corresponding TCP
- layer function.
-
-**/
-typedef
-EFI_STATUS
-(*SOCK_PROTO_HANDLER) (
- IN SOCKET *Socket,
- IN UINT8 Request,
- IN VOID *RequestData
- );
-
-/**
- The Callback funtion called after the TCP socket is created.
-
- @param[in] This Pointer to the socket just created.
- @param[in] Context Context of the socket.
-
- @retval EFI_SUCCESS This protocol installed successfully.
- @retval other Some error occured.
-
-**/
-typedef
-EFI_STATUS
-(*SOCK_CREATE_CALLBACK) (
- IN SOCKET *This,
- IN VOID *Context
- );
-
-/**
- The callback function called before the TCP socket is to be destroyed.
-
- @param[in] This The TCP socket to be destroyed.
- @param[in] Context The context.
-
-**/
-typedef
-VOID
-(*SOCK_DESTROY_CALLBACK) (
- IN SOCKET *This,
- IN VOID *Context
- );
-
-///
-/// The initialize data for create a new socket.
-///
-typedef struct _SOCK_INIT_DATA {
- SOCK_TYPE Type;
- UINT8 State;
-
- SOCKET *Parent; ///< The parent of this socket
- UINT32 BackLog; ///< The connection limit for listening socket
- UINT32 SndBufferSize; ///< The high warter mark of send buffer
- UINT32 RcvBufferSize; ///< The high warter mark of receive buffer
- UINT8 IpVersion;
- VOID *Protocol; ///< The pointer to protocol function template
- ///< wanted to install on socket
-
- //
- // Callbacks after socket is created and before socket is to be destroyed.
- //
- SOCK_CREATE_CALLBACK CreateCallback; ///< Callback after created
- SOCK_DESTROY_CALLBACK DestroyCallback; ///< Callback before destroied
- VOID *Context; ///< The context of the callback
-
- //
- // Opaque protocol data.
- //
- VOID *ProtoData;
- UINT32 DataSize;
-
- SOCK_PROTO_HANDLER ProtoHandler; ///< The handler of protocol for socket request
-
- EFI_HANDLE DriverBinding; ///< The driver binding handle
-} SOCK_INIT_DATA;
-
-///
-/// The union type of TCP and UDP protocol.
-///
-typedef union _NET_PROTOCOL {
- EFI_TCP4_PROTOCOL Tcp4Protocol; ///< Tcp4 protocol
- EFI_TCP6_PROTOCOL Tcp6Protocol; ///< Tcp6 protocol
-} NET_PROTOCOL;
-///
-/// The socket structure representing a network service access point.
-///
-struct _TCP_SOCKET {
- //
- // Socket description information
- //
- UINT32 Signature; ///< Signature of the socket
- EFI_HANDLE SockHandle; ///< The virtual handle of the socket
- EFI_HANDLE DriverBinding; ///< Socket's driver binding protocol
- EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- LIST_ENTRY Link;
- UINT8 ConfigureState;
- SOCK_TYPE Type;
- UINT8 State;
- UINT16 Flag;
- EFI_LOCK Lock; ///< The lock of socket
- SOCK_BUFFER SndBuffer; ///< Send buffer of application's data
- SOCK_BUFFER RcvBuffer; ///< Receive buffer of received data
- EFI_STATUS SockError; ///< The error returned by low layer protocol
- BOOLEAN InDestroy;
-
- //
- // Fields used to manage the connection request
- //
- UINT32 BackLog; ///< the limit of connection to this socket
- UINT32 ConnCnt; ///< the current count of connections to it
- SOCKET *Parent; ///< listening parent that accept the connection
- LIST_ENTRY ConnectionList; ///< the connections maintained by this socket
- //
- // The queue to buffer application's asynchronous token
- //
- LIST_ENTRY ListenTokenList;
- LIST_ENTRY RcvTokenList;
- LIST_ENTRY SndTokenList;
- LIST_ENTRY ProcessingSndTokenList;
-
- SOCK_COMPLETION_TOKEN *ConnectionToken; ///< app's token to signal if connected
- SOCK_COMPLETION_TOKEN *CloseToken; ///< app's token to signal if closed
- //
- // Interface for low level protocol
- //
- SOCK_PROTO_HANDLER ProtoHandler; ///< The request handler of protocol
- UINT8 ProtoReserved[PROTO_RESERVED_LEN]; ///< Data fields reserved for protocol
- UINT8 IpVersion;
- NET_PROTOCOL NetProtocol; ///< TCP or UDP protocol socket used
- //
- // Callbacks after socket is created and before socket is to be destroyed.
- //
- SOCK_CREATE_CALLBACK CreateCallback; ///< Callback after created
- SOCK_DESTROY_CALLBACK DestroyCallback; ///< Callback before destroied
- VOID *Context; ///< The context of the callback
-};
-
-///
-/// The token structure buffered in socket layer.
-///
-typedef struct _SOCK_TOKEN {
- LIST_ENTRY TokenList; ///< The entry to add in the token list
- SOCK_COMPLETION_TOKEN *Token; ///< The application's token
- UINT32 RemainDataLen; ///< Unprocessed data length
- SOCKET *Sock; ///< The poninter to the socket this token
- ///< belongs to
-} SOCK_TOKEN;
-
-///
-/// Reserved data to access the NET_BUF delivered by TCP driver.
-///
-typedef struct _TCP_RSV_DATA {
- UINT32 UrgLen;
-} TCP_RSV_DATA;
-
-//
-// Socket provided oprerations for low layer protocol implemented in SockImpl.c
-//
-
-/**
- Set the state of the socket.
-
- @param[in, out] Sock Pointer to the socket.
- @param[in] State The new socket state to be set.
-
-**/
-VOID
-SockSetState (
- IN OUT SOCKET *Sock,
- IN UINT8 State
- );
-
-/**
- Clone a new socket including its associated protocol control block.
-
- @param[in] Sock Pointer to the socket to be cloned.
-
- @return Pointer to the newly cloned socket. If NULL, an error condition occurred.
-
-**/
-SOCKET *
-SockClone (
- IN SOCKET *Sock
- );
-
-/**
- Called by the low layer protocol to indicate the socket a connection is
- established.
-
- This function just changes the socket's state to SO_CONNECTED
- and signals the token used for connection establishment.
-
- @param[in, out] Sock Pointer to the socket associated with the
- established connection.
-
-**/
-VOID
-SockConnEstablished (
- IN OUT SOCKET *Sock
- );
-
-/**
- Called by the low layer protocol to indicate that the connection is closed.
-
- This function flushes the socket, sets the state to SO_CLOSED, and signals
- the close token.
-
- @param[in, out] Sock Pointer to the socket associated with the closed
- connection.
-
-**/
-VOID
-SockConnClosed (
- IN OUT SOCKET *Sock
- );
-
-/**
- Called by low layer protocol to indicate that some data is sent or processed.
-
- This function trims the sent data in the socket send buffer and signals the data
- token, if proper.
-
- @param[in, out] Sock Pointer to the socket.
- @param[in] Count The length of the data processed or sent, in bytes.
-
-**/
-VOID
-SockDataSent (
- IN OUT SOCKET *Sock,
- IN UINT32 Count
- );
-
-/**
- Called by the low layer protocol to copy some data in socket send
- buffer starting from the specific offset to a buffer provided by
- the caller.
-
- @param[in] Sock Pointer to the socket.
- @param[in] Offset The start point of the data to be copied.
- @param[in] Len The length of the data to be copied.
- @param[out] Dest Pointer to the destination to copy the data.
-
- @return The data size copied.
-
-**/
-UINT32
-SockGetDataToSend (
- IN SOCKET *Sock,
- IN UINT32 Offset,
- IN UINT32 Len,
- OUT UINT8 *Dest
- );
-
-/**
- Called by the low layer protocol to deliver received data to socket layer.
-
- This function appends the data to the socket receive buffer, set the
- urgent data length, then checks if any receive token can be signaled.
-
- @param[in, out] Sock Pointer to the socket.
- @param[in, out] NetBuffer Pointer to the buffer that contains the received data.
- @param[in] UrgLen The length of the urgent data in the received data.
-
-**/
-VOID
-SockDataRcvd (
- IN OUT SOCKET *Sock,
- IN OUT NET_BUF *NetBuffer,
- IN UINT32 UrgLen
- );
-
-/**
- Get the length of the free space of the specific socket buffer.
-
- @param[in] Sock Pointer to the socket.
- @param[in] Which Flag to indicate which socket buffer to check:
- either send buffer or receive buffer.
-
- @return The length of the free space, in bytes.
-
-**/
-UINT32
-SockGetFreeSpace (
- IN SOCKET *Sock,
- IN UINT32 Which
- );
-
-/**
- Called by the low layer protocol to indicate that there will be no more data
- from the communication peer.
-
- This function sets the socket's state to SO_NO_MORE_DATA and signals all queued
- IO tokens with the error status EFI_CONNECTION_FIN.
-
- @param[in, out] Sock Pointer to the socket.
-
-**/
-VOID
-SockNoMoreData (
- IN OUT SOCKET *Sock
- );
-
-//
-// Socket provided operations for user interface implemented in SockInterface.c
-//
-
-/**
- Create a socket and its associated protocol control block
- with the intial data SockInitData and protocol specific
- data ProtoData.
-
- @param[in] SockInitData Inital data to setting the socket.
-
- @return Pointer to the newly created socket. If NULL, an error condition occured.
-
-**/
-SOCKET *
-SockCreateChild (
- IN SOCK_INIT_DATA *SockInitData
- );
-
-/**
- Destroy the socket Sock and its associated protocol control block.
-
- @param[in, out] Sock The socket to be destroyed.
-
- @retval EFI_SUCCESS The socket Sock was destroyed successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket.
-
-**/
-EFI_STATUS
-SockDestroyChild (
- IN OUT SOCKET *Sock
- );
-
-/**
- Configure the specific socket Sock using configuration data ConfigData.
-
- @param[in] Sock Pointer to the socket to be configured.
- @param[in] ConfigData Pointer to the configuration data.
-
- @retval EFI_SUCCESS The socket configured successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket, or the
- socket is already configured.
-
-**/
-EFI_STATUS
-SockConfigure (
- IN SOCKET *Sock,
- IN VOID *ConfigData
- );
-
-/**
- Initiate a connection establishment process.
-
- @param[in] Sock Pointer to the socket to initiate the initate the
- connection.
- @param[in] Token Pointer to the token used for the connection
- operation.
-
- @retval EFI_SUCCESS The connection initialized successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket, or the
- socket is closed, or the socket is not configured to
- be an active one, or the token is already in one of
- this socket's lists.
- @retval EFI_NO_MAPPING The IP address configuration operation is not
- finished.
- @retval EFI_NOT_STARTED The socket is not configured.
-
-**/
-EFI_STATUS
-SockConnect (
- IN SOCKET *Sock,
- IN VOID *Token
- );
-
-/**
- Issue a listen token to get an existed connected network instance,
- or wait for a connection if there is none.
-
- @param[in] Sock Pointer to the socket to accept connections.
- @param[in] Token The token to accept a connection.
-
- @retval EFI_SUCCESS Either a connection is accepted or the Token is
- buffered for further acceptance.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket, or the
- socket is closed, or the socket is not configured to
- be a passive one, or the token is already in one of
- this socket's lists.
- @retval EFI_NO_MAPPING The IP address configuration operation is not
- finished.
- @retval EFI_NOT_STARTED The socket is not configured.
- @retval EFI_OUT_OF_RESOURCE Failed to buffer the Token due to memory limit.
-
-**/
-EFI_STATUS
-SockAccept (
- IN SOCKET *Sock,
- IN VOID *Token
- );
-
-/**
- Issue a token with data to the socket to send out.
-
- @param[in] Sock Pointer to the socket to process the token with
- data.
- @param[in] Token The token with data that needs to send out.
-
- @retval EFI_SUCCESS The token processed successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket, or the
- socket is closed, or the socket is not in a
- synchronized state , or the token is already in one
- of this socket's lists.
- @retval EFI_NO_MAPPING The IP address configuration operation is not
- finished.
- @retval EFI_NOT_STARTED The socket is not configured.
- @retval EFI_OUT_OF_RESOURCE Failed to buffer the token due to a memory limit.
-
-**/
-EFI_STATUS
-SockSend (
- IN SOCKET *Sock,
- IN VOID *Token
- );
-
-/**
- Issue a token to get data from the socket.
-
- @param[in] Sock Pointer to the socket to get data from.
- @param[in] Token The token to store the received data from the
- socket.
-
- @retval EFI_SUCCESS The token processed successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket, or the
- socket is closed, or the socket is not in a
- synchronized state , or the token is already in one
- of this socket's lists.
- @retval EFI_NO_MAPPING The IP address configuration operation is not
- finished.
- @retval EFI_NOT_STARTED The socket is not configured.
- @retval EFI_CONNECTION_FIN The connection is closed and there is no more data.
- @retval EFI_OUT_OF_RESOURCE Failed to buffer the token due to a memory limit.
-
-**/
-EFI_STATUS
-SockRcv (
- IN SOCKET *Sock,
- IN VOID *Token
- );
-
-/**
- Reset the socket and its associated protocol control block.
-
- @param[in, out] Sock Pointer to the socket to be flushed.
-
- @retval EFI_SUCCESS The socket flushed successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket.
-
-**/
-EFI_STATUS
-SockFlush (
- IN OUT SOCKET *Sock
- );
-
-/**
- Close or abort the socket associated connection.
-
- @param[in, out] Sock Pointer to the socket of the connection to close
- or abort.
- @param[in] Token The token for close operation.
- @param[in] OnAbort TRUE for aborting the connection, FALSE to close it.
-
- @retval EFI_SUCCESS The close or abort operation initialized
- successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket, or the
- socket is closed, or the socket is not in a
- synchronized state , or the token is already in one
- of this socket's lists.
- @retval EFI_NO_MAPPING The IP address configuration operation is not
- finished.
- @retval EFI_NOT_STARTED The socket is not configured.
-
-**/
-EFI_STATUS
-SockClose (
- IN OUT SOCKET *Sock,
- IN VOID *Token,
- IN BOOLEAN OnAbort
- );
-
-/**
- Abort the socket associated connection, listen, transmission or receive request.
-
- @param[in, out] Sock Pointer to the socket to abort.
- @param[in] Token Pointer to a token that has been issued by
- Connect(), Accept(), Transmit() or Receive(). If
- NULL, all pending tokens issued by the four
- functions listed above will be aborted.
-
- @retval EFI_UNSUPPORTED The operation is not supported in the current
- implementation.
-**/
-EFI_STATUS
-SockCancel (
- IN OUT SOCKET *Sock,
- IN VOID *Token
- );
-
-/**
- Get the mode data of the low layer protocol.
-
- @param[in] Sock Pointer to the socket to get mode data from.
- @param[in, out] Mode Pointer to the data to store the low layer mode
- information.
-
- @retval EFI_SUCCESS The mode data was obtained successfully.
- @retval EFI_NOT_STARTED The socket is not configured.
-
-**/
-EFI_STATUS
-SockGetMode (
- IN SOCKET *Sock,
- IN OUT VOID *Mode
- );
-
-/**
- Configure the low level protocol to join a multicast group for
- this socket's connection.
-
- @param[in] Sock Pointer to the socket of the connection to join the
- specific multicast group.
- @param[in] GroupInfo Pointer to the multicast group information.
-
- @retval EFI_SUCCESS The configuration completed successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket.
- @retval EFI_NOT_STARTED The socket is not configured.
-
-**/
-EFI_STATUS
-SockGroup (
- IN SOCKET *Sock,
- IN VOID *GroupInfo
- );
-
-/**
- Add or remove route information in IP route table associated
- with this socket.
-
- @param[in] Sock Pointer to the socket associated with the IP route
- table to operate on.
- @param[in] RouteInfo Pointer to the route information to be processed.
-
- @retval EFI_SUCCESS The route table updated successfully.
- @retval EFI_ACCESS_DENIED Failed to get the lock to access the socket.
- @retval EFI_NO_MAPPING The IP address configuration operation is not
- finished.
- @retval EFI_NOT_STARTED The socket is not configured.
-
-**/
-EFI_STATUS
-SockRoute (
- IN SOCKET *Sock,
- IN VOID *RouteInfo
- );
-
-#endif