]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Main.h
Import ArpDxe, Dhcp4Dxe, Ip4Dxe, Mtftp4Dxe, PxeBcDxe and PxeDhcp4Dxe.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Tcp4Dxe / Tcp4Main.h
CommitLineData
8a67d61d 1/** @file
2
3Copyright (c) 2005 - 2006, Intel Corporation
4All rights reserved. This program and the accompanying materials
5are licensed and made available under the terms and conditions of the BSD License
6which accompanies this distribution. The full text of the license may be found at
7http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13
14 Tcp4Main.h
15
16Abstract:
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
30extern UINT16 mTcp4RandomPort;
31
32//
33// Driver Produced Protocol Prototypes
34//
8a67d61d 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//
43EFI_STATUS
44Tcp4Dispatcher (
45 IN SOCKET *Sock,
46 IN SOCK_REQUEST Request,
47 IN VOID *Data OPTIONAL
48 );
49
50typedef 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
58typedef 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//
68EFI_STATUS
69EFIAPI
70Tcp4GetModeData (
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//
82EFI_STATUS
83EFIAPI
84Tcp4Configure (
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//
92EFI_STATUS
93EFIAPI
94Tcp4Routes (
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//
106EFI_STATUS
107EFIAPI
108Tcp4Connect (
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//
117EFI_STATUS
118EFIAPI
119Tcp4Accept (
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//
128EFI_STATUS
129EFIAPI
130Tcp4Transmit (
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//
139EFI_STATUS
140Tcp4Receive (
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//
149EFI_STATUS
150EFIAPI
151Tcp4Close (
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//
159EFI_STATUS
160EFIAPI
161Tcp4Cancel (
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//
169EFI_STATUS
170EFIAPI
171Tcp4Poll (
172 IN EFI_TCP4_PROTOCOL *This
173 );
174
175#endif