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