]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Main.h
Import SnpDxe, Tcp4Dxe, Udp4Dxe and MnpDxe.
[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//
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//
44EFI_STATUS
45Tcp4Dispatcher (
46 IN SOCKET *Sock,
47 IN SOCK_REQUEST Request,
48 IN VOID *Data OPTIONAL
49 );
50
51typedef 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
59typedef 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//
69EFI_STATUS
70EFIAPI
71Tcp4GetModeData (
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//
83EFI_STATUS
84EFIAPI
85Tcp4Configure (
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//
93EFI_STATUS
94EFIAPI
95Tcp4Routes (
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//
107EFI_STATUS
108EFIAPI
109Tcp4Connect (
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//
118EFI_STATUS
119EFIAPI
120Tcp4Accept (
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//
129EFI_STATUS
130EFIAPI
131Tcp4Transmit (
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//
140EFI_STATUS
141Tcp4Receive (
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//
150EFI_STATUS
151EFIAPI
152Tcp4Close (
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//
160EFI_STATUS
161EFIAPI
162Tcp4Cancel (
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//
170EFI_STATUS
171EFIAPI
172Tcp4Poll (
173 IN EFI_TCP4_PROTOCOL *This
174 );
175
176#endif