]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Main.h
1. Sync the latest network stack. Add NetLibCreateIPv4DPathNode () in netlib library.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Tcp4Dxe / Tcp4Main.h
1 /** @file
2
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
8
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.
11
12 Module Name:
13
14 Tcp4Main.h
15
16 Abstract:
17
18
19 **/
20
21 #ifndef _TCP4_MAIN_H_
22 #define _TCP4_MAIN_H_
23
24 #include "Socket.h"
25
26 #include "Tcp4Proto.h"
27 #include "Tcp4Driver.h"
28
29
30 extern UINT16 mTcp4RandomPort;
31
32 //
33 // Driver Produced Protocol Prototypes
34 //
35
36 #define TCP4_DEBUG_ERROR(PrintArg) NET_DEBUG_ERROR ("Tcp", PrintArg)
37 #define TCP4_DEBUG_WARN(PrintArg) NET_DEBUG_WARNING ("Tcp", PrintArg)
38 #define TCP4_DEBUG_TRACE(PrintArg) NET_DEBUG_TRACE ("Tcp", PrintArg)
39
40 //
41 // Function prototype for the Tcp4 socket request handler
42 //
43 EFI_STATUS
44 Tcp4Dispatcher (
45 IN SOCKET *Sock,
46 IN SOCK_REQUEST Request,
47 IN VOID *Data OPTIONAL
48 );
49
50 typedef struct _TCP4_MODE_DATA {
51 EFI_TCP4_CONNECTION_STATE *Tcp4State;
52 EFI_TCP4_CONFIG_DATA *Tcp4ConfigData;
53 EFI_IP4_MODE_DATA *Ip4ModeData;
54 EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData;
55 EFI_SIMPLE_NETWORK_MODE *SnpModeData;
56 } TCP4_MODE_DATA;
57
58 typedef struct _TCP4_ROUTE_INFO {
59 BOOLEAN DeleteRoute;
60 EFI_IPv4_ADDRESS *SubnetAddress;
61 EFI_IPv4_ADDRESS *SubnetMask;
62 EFI_IPv4_ADDRESS *GatewayAddress;
63 } TCP4_ROUTE_INFO;
64
65 //
66 // Get the mode data of a TCP instance
67 //
68 EFI_STATUS
69 EFIAPI
70 Tcp4GetModeData (
71 IN CONST EFI_TCP4_PROTOCOL * This,
72 OUT EFI_TCP4_CONNECTION_STATE * Tcp4State OPTIONAL,
73 OUT EFI_TCP4_CONFIG_DATA * Tcp4ConfigData OPTIONAL,
74 OUT EFI_IP4_MODE_DATA * Ip4ModeData OPTIONAL,
75 OUT EFI_MANAGED_NETWORK_CONFIG_DATA * MnpConfigData OPTIONAL,
76 OUT EFI_SIMPLE_NETWORK_MODE * SnpModeData OPTIONAL
77 );
78
79 //
80 // Initialize or reset a TCP instance
81 //
82 EFI_STATUS
83 EFIAPI
84 Tcp4Configure (
85 IN EFI_TCP4_PROTOCOL * This,
86 IN EFI_TCP4_CONFIG_DATA * TcpConfigData OPTIONAL
87 );
88
89 //
90 // Add a route entry to the route table
91 //
92 EFI_STATUS
93 EFIAPI
94 Tcp4Routes (
95 IN EFI_TCP4_PROTOCOL *This,
96 IN BOOLEAN DeleteRoute,
97 IN EFI_IPv4_ADDRESS *SubnetAddress,
98 IN EFI_IPv4_ADDRESS *SubnetMask,
99 IN EFI_IPv4_ADDRESS *GatewayAddress
100 );
101
102 //
103 // Issue an asynchronous connection establishment
104 // request to the peer
105 //
106 EFI_STATUS
107 EFIAPI
108 Tcp4Connect (
109 IN EFI_TCP4_PROTOCOL *This,
110 IN EFI_TCP4_CONNECTION_TOKEN *ConnectionToken
111 );
112
113 //
114 // Issue an asynchronous listent token to accept an
115 // incoming connection reques
116 //
117 EFI_STATUS
118 EFIAPI
119 Tcp4Accept (
120 IN EFI_TCP4_PROTOCOL *This,
121 IN EFI_TCP4_LISTEN_TOKEN *ListenToken
122 );
123
124 //
125 // Issue an asynchronous IO token to transmit some data
126 // through this TCP instance
127 //
128 EFI_STATUS
129 EFIAPI
130 Tcp4Transmit (
131 IN EFI_TCP4_PROTOCOL *This,
132 IN EFI_TCP4_IO_TOKEN *Token
133 );
134
135 //
136 // Issue an asynchronous IO token to receive some data
137 // through this TCP instance
138 //
139 EFI_STATUS
140 Tcp4Receive (
141 IN EFI_TCP4_PROTOCOL *This,
142 IN EFI_TCP4_IO_TOKEN *Token
143 );
144
145 //
146 // Issue an asynchronous CloseToken to close a TCP
147 // connection represented by instance
148 //
149 EFI_STATUS
150 EFIAPI
151 Tcp4Close (
152 IN EFI_TCP4_PROTOCOL *This,
153 IN EFI_TCP4_CLOSE_TOKEN *CloseToken
154 );
155
156 //
157 // cancle an connect, listent or IO token
158 //
159 EFI_STATUS
160 EFIAPI
161 Tcp4Cancel (
162 IN EFI_TCP4_PROTOCOL * This,
163 IN EFI_TCP4_COMPLETION_TOKEN * Token OPTIONAL
164 );
165
166 //
167 // poll data from NIC for receive
168 //
169 EFI_STATUS
170 EFIAPI
171 Tcp4Poll (
172 IN EFI_TCP4_PROTOCOL *This
173 );
174
175 #endif