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