3 Copyright (c) 2005 - 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
26 #include "Tcp4Proto.h"
27 #include "Tcp4Driver.h"
30 extern UINT16 mTcp4RandomPort
;
33 // Driver Produced Protocol Prototypes
37 // Function prototype for the Tcp4 socket request handler
42 IN SOCK_REQUEST Request
,
43 IN VOID
*Data OPTIONAL
46 typedef struct _TCP4_MODE_DATA
{
47 EFI_TCP4_CONNECTION_STATE
*Tcp4State
;
48 EFI_TCP4_CONFIG_DATA
*Tcp4ConfigData
;
49 EFI_IP4_MODE_DATA
*Ip4ModeData
;
50 EFI_MANAGED_NETWORK_CONFIG_DATA
*MnpConfigData
;
51 EFI_SIMPLE_NETWORK_MODE
*SnpModeData
;
54 typedef struct _TCP4_ROUTE_INFO
{
56 EFI_IPv4_ADDRESS
*SubnetAddress
;
57 EFI_IPv4_ADDRESS
*SubnetMask
;
58 EFI_IPv4_ADDRESS
*GatewayAddress
;
62 // Get the mode data of a TCP instance
67 IN CONST EFI_TCP4_PROTOCOL
* This
,
68 OUT EFI_TCP4_CONNECTION_STATE
* Tcp4State OPTIONAL
,
69 OUT EFI_TCP4_CONFIG_DATA
* Tcp4ConfigData OPTIONAL
,
70 OUT EFI_IP4_MODE_DATA
* Ip4ModeData OPTIONAL
,
71 OUT EFI_MANAGED_NETWORK_CONFIG_DATA
* MnpConfigData OPTIONAL
,
72 OUT EFI_SIMPLE_NETWORK_MODE
* SnpModeData OPTIONAL
76 // Initialize or reset a TCP instance
81 IN EFI_TCP4_PROTOCOL
* This
,
82 IN EFI_TCP4_CONFIG_DATA
* TcpConfigData OPTIONAL
86 // Add a route entry to the route table
91 IN EFI_TCP4_PROTOCOL
*This
,
92 IN BOOLEAN DeleteRoute
,
93 IN EFI_IPv4_ADDRESS
*SubnetAddress
,
94 IN EFI_IPv4_ADDRESS
*SubnetMask
,
95 IN EFI_IPv4_ADDRESS
*GatewayAddress
99 // Issue an asynchronous connection establishment
100 // request to the peer
105 IN EFI_TCP4_PROTOCOL
*This
,
106 IN EFI_TCP4_CONNECTION_TOKEN
*ConnectionToken
110 // Issue an asynchronous listent token to accept an
111 // incoming connection reques
116 IN EFI_TCP4_PROTOCOL
*This
,
117 IN EFI_TCP4_LISTEN_TOKEN
*ListenToken
121 // Issue an asynchronous IO token to transmit some data
122 // through this TCP instance
127 IN EFI_TCP4_PROTOCOL
*This
,
128 IN EFI_TCP4_IO_TOKEN
*Token
132 // Issue an asynchronous IO token to receive some data
133 // through this TCP instance
137 IN EFI_TCP4_PROTOCOL
*This
,
138 IN EFI_TCP4_IO_TOKEN
*Token
142 // Issue an asynchronous CloseToken to close a TCP
143 // connection represented by instance
148 IN EFI_TCP4_PROTOCOL
*This
,
149 IN EFI_TCP4_CLOSE_TOKEN
*CloseToken
153 // cancle an connect, listent or IO token
158 IN EFI_TCP4_PROTOCOL
* This
,
159 IN EFI_TCP4_COMPLETION_TOKEN
* Token OPTIONAL
163 // poll data from NIC for receive
168 IN EFI_TCP4_PROTOCOL
*This