]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Main.h
Sync the latest version from R8.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Tcp4Dxe / Tcp4Main.h
CommitLineData
83cbd279 1/** @file\r
2\r
3Copyright (c) 2005 - 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 Tcp4Main.h\r
15\r
16Abstract:\r
17\r
18\r
19**/\r
20\r
21#ifndef _TCP4_MAIN_H_\r
22#define _TCP4_MAIN_H_\r
23\r
24#include "Socket.h"\r
25\r
26#include "Tcp4Proto.h"\r
27#include "Tcp4Driver.h"\r
28\r
29\r
30extern UINT16 mTcp4RandomPort;\r
31\r
32//\r
33// Driver Produced Protocol Prototypes\r
34//\r
35\r
36#define TCP4_DEBUG_ERROR(PrintArg) NET_DEBUG_ERROR ("Tcp", PrintArg)\r
37#define TCP4_DEBUG_WARN(PrintArg) NET_DEBUG_WARNING ("Tcp", PrintArg)\r
38#define TCP4_DEBUG_TRACE(PrintArg) NET_DEBUG_TRACE ("Tcp", PrintArg)\r
39\r
40//\r
41// Function prototype for the Tcp4 socket request handler\r
42//\r
43EFI_STATUS\r
44Tcp4Dispatcher (\r
45 IN SOCKET *Sock,\r
46 IN SOCK_REQUEST Request,\r
47 IN VOID *Data OPTIONAL\r
48 );\r
49\r
50typedef struct _TCP4_MODE_DATA {\r
51 EFI_TCP4_CONNECTION_STATE *Tcp4State;\r
52 EFI_TCP4_CONFIG_DATA *Tcp4ConfigData;\r
53 EFI_IP4_MODE_DATA *Ip4ModeData;\r
54 EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData;\r
55 EFI_SIMPLE_NETWORK_MODE *SnpModeData;\r
56} TCP4_MODE_DATA;\r
57\r
58typedef struct _TCP4_ROUTE_INFO {\r
59 BOOLEAN DeleteRoute;\r
60 EFI_IPv4_ADDRESS *SubnetAddress;\r
61 EFI_IPv4_ADDRESS *SubnetMask;\r
62 EFI_IPv4_ADDRESS *GatewayAddress;\r
63} TCP4_ROUTE_INFO;\r
64\r
65//\r
66// Get the mode data of a TCP instance\r
67//\r
68EFI_STATUS\r
69EFIAPI\r
70Tcp4GetModeData (\r
71 IN CONST EFI_TCP4_PROTOCOL * This,\r
72 OUT EFI_TCP4_CONNECTION_STATE * Tcp4State OPTIONAL,\r
73 OUT EFI_TCP4_CONFIG_DATA * Tcp4ConfigData OPTIONAL,\r
74 OUT EFI_IP4_MODE_DATA * Ip4ModeData OPTIONAL,\r
75 OUT EFI_MANAGED_NETWORK_CONFIG_DATA * MnpConfigData OPTIONAL,\r
76 OUT EFI_SIMPLE_NETWORK_MODE * SnpModeData OPTIONAL\r
77 );\r
78\r
79//\r
80// Initialize or reset a TCP instance\r
81//\r
82EFI_STATUS\r
83EFIAPI\r
84Tcp4Configure (\r
85 IN EFI_TCP4_PROTOCOL * This,\r
86 IN EFI_TCP4_CONFIG_DATA * TcpConfigData OPTIONAL\r
87 );\r
88\r
89//\r
90// Add a route entry to the route table\r
91//\r
92EFI_STATUS\r
93EFIAPI\r
94Tcp4Routes (\r
95 IN EFI_TCP4_PROTOCOL *This,\r
96 IN BOOLEAN DeleteRoute,\r
97 IN EFI_IPv4_ADDRESS *SubnetAddress,\r
98 IN EFI_IPv4_ADDRESS *SubnetMask,\r
99 IN EFI_IPv4_ADDRESS *GatewayAddress\r
100 );\r
101\r
102//\r
103// Issue an asynchronous connection establishment\r
104// request to the peer\r
105//\r
106EFI_STATUS\r
107EFIAPI\r
108Tcp4Connect (\r
109 IN EFI_TCP4_PROTOCOL *This,\r
110 IN EFI_TCP4_CONNECTION_TOKEN *ConnectionToken\r
111 );\r
112\r
113//\r
114// Issue an asynchronous listent token to accept an\r
115// incoming connection reques\r
116//\r
117EFI_STATUS\r
118EFIAPI\r
119Tcp4Accept (\r
120 IN EFI_TCP4_PROTOCOL *This,\r
121 IN EFI_TCP4_LISTEN_TOKEN *ListenToken\r
122 );\r
123\r
124//\r
125// Issue an asynchronous IO token to transmit some data\r
126// through this TCP instance\r
127//\r
128EFI_STATUS\r
129EFIAPI\r
130Tcp4Transmit (\r
131 IN EFI_TCP4_PROTOCOL *This,\r
132 IN EFI_TCP4_IO_TOKEN *Token\r
133 );\r
134\r
135//\r
136// Issue an asynchronous IO token to receive some data\r
137// through this TCP instance\r
138//\r
139EFI_STATUS\r
140Tcp4Receive (\r
141 IN EFI_TCP4_PROTOCOL *This,\r
142 IN EFI_TCP4_IO_TOKEN *Token\r
143 );\r
144\r
145//\r
146// Issue an asynchronous CloseToken to close a TCP\r
147// connection represented by instance\r
148//\r
149EFI_STATUS\r
150EFIAPI\r
151Tcp4Close (\r
152 IN EFI_TCP4_PROTOCOL *This,\r
153 IN EFI_TCP4_CLOSE_TOKEN *CloseToken\r
154 );\r
155\r
156//\r
157// cancle an connect, listent or IO token\r
158//\r
159EFI_STATUS\r
160EFIAPI\r
161Tcp4Cancel (\r
162 IN EFI_TCP4_PROTOCOL * This,\r
163 IN EFI_TCP4_COMPLETION_TOKEN * Token OPTIONAL\r
164 );\r
165\r
166//\r
167// poll data from NIC for receive\r
168//\r
169EFI_STATUS\r
170EFIAPI\r
171Tcp4Poll (\r
172 IN EFI_TCP4_PROTOCOL *This\r
173 );\r
174\r
175#endif\r