]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Main.h
Use Mde library and definition instead of some native definitions in NetLib, to simpl...
[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
83cbd279 36//\r
37// Function prototype for the Tcp4 socket request handler\r
38//\r
39EFI_STATUS\r
40Tcp4Dispatcher (\r
41 IN SOCKET *Sock,\r
42 IN SOCK_REQUEST Request,\r
43 IN VOID *Data OPTIONAL\r
44 );\r
45\r
46typedef struct _TCP4_MODE_DATA {\r
47 EFI_TCP4_CONNECTION_STATE *Tcp4State;\r
48 EFI_TCP4_CONFIG_DATA *Tcp4ConfigData;\r
49 EFI_IP4_MODE_DATA *Ip4ModeData;\r
50 EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData;\r
51 EFI_SIMPLE_NETWORK_MODE *SnpModeData;\r
52} TCP4_MODE_DATA;\r
53\r
54typedef struct _TCP4_ROUTE_INFO {\r
55 BOOLEAN DeleteRoute;\r
56 EFI_IPv4_ADDRESS *SubnetAddress;\r
57 EFI_IPv4_ADDRESS *SubnetMask;\r
58 EFI_IPv4_ADDRESS *GatewayAddress;\r
59} TCP4_ROUTE_INFO;\r
60\r
61//\r
62// Get the mode data of a TCP instance\r
63//\r
64EFI_STATUS\r
65EFIAPI\r
66Tcp4GetModeData (\r
67 IN CONST EFI_TCP4_PROTOCOL * This,\r
68 OUT EFI_TCP4_CONNECTION_STATE * Tcp4State OPTIONAL,\r
69 OUT EFI_TCP4_CONFIG_DATA * Tcp4ConfigData OPTIONAL,\r
70 OUT EFI_IP4_MODE_DATA * Ip4ModeData OPTIONAL,\r
71 OUT EFI_MANAGED_NETWORK_CONFIG_DATA * MnpConfigData OPTIONAL,\r
72 OUT EFI_SIMPLE_NETWORK_MODE * SnpModeData OPTIONAL\r
73 );\r
74\r
75//\r
76// Initialize or reset a TCP instance\r
77//\r
78EFI_STATUS\r
79EFIAPI\r
80Tcp4Configure (\r
81 IN EFI_TCP4_PROTOCOL * This,\r
82 IN EFI_TCP4_CONFIG_DATA * TcpConfigData OPTIONAL\r
83 );\r
84\r
85//\r
86// Add a route entry to the route table\r
87//\r
88EFI_STATUS\r
89EFIAPI\r
90Tcp4Routes (\r
91 IN EFI_TCP4_PROTOCOL *This,\r
92 IN BOOLEAN DeleteRoute,\r
93 IN EFI_IPv4_ADDRESS *SubnetAddress,\r
94 IN EFI_IPv4_ADDRESS *SubnetMask,\r
95 IN EFI_IPv4_ADDRESS *GatewayAddress\r
96 );\r
97\r
98//\r
99// Issue an asynchronous connection establishment\r
100// request to the peer\r
101//\r
102EFI_STATUS\r
103EFIAPI\r
104Tcp4Connect (\r
105 IN EFI_TCP4_PROTOCOL *This,\r
106 IN EFI_TCP4_CONNECTION_TOKEN *ConnectionToken\r
107 );\r
108\r
109//\r
110// Issue an asynchronous listent token to accept an\r
111// incoming connection reques\r
112//\r
113EFI_STATUS\r
114EFIAPI\r
115Tcp4Accept (\r
116 IN EFI_TCP4_PROTOCOL *This,\r
117 IN EFI_TCP4_LISTEN_TOKEN *ListenToken\r
118 );\r
119\r
120//\r
121// Issue an asynchronous IO token to transmit some data\r
122// through this TCP instance\r
123//\r
124EFI_STATUS\r
125EFIAPI\r
126Tcp4Transmit (\r
127 IN EFI_TCP4_PROTOCOL *This,\r
128 IN EFI_TCP4_IO_TOKEN *Token\r
129 );\r
130\r
131//\r
132// Issue an asynchronous IO token to receive some data\r
133// through this TCP instance\r
134//\r
135EFI_STATUS\r
136Tcp4Receive (\r
137 IN EFI_TCP4_PROTOCOL *This,\r
138 IN EFI_TCP4_IO_TOKEN *Token\r
139 );\r
140\r
141//\r
142// Issue an asynchronous CloseToken to close a TCP\r
143// connection represented by instance\r
144//\r
145EFI_STATUS\r
146EFIAPI\r
147Tcp4Close (\r
148 IN EFI_TCP4_PROTOCOL *This,\r
149 IN EFI_TCP4_CLOSE_TOKEN *CloseToken\r
150 );\r
151\r
152//\r
153// cancle an connect, listent or IO token\r
154//\r
155EFI_STATUS\r
156EFIAPI\r
157Tcp4Cancel (\r
158 IN EFI_TCP4_PROTOCOL * This,\r
159 IN EFI_TCP4_COMPLETION_TOKEN * Token OPTIONAL\r
160 );\r
161\r
162//\r
163// poll data from NIC for receive\r
164//\r
165EFI_STATUS\r
166EFIAPI\r
167Tcp4Poll (\r
168 IN EFI_TCP4_PROTOCOL *This\r
169 );\r
170\r
171#endif\r