]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Efi/Protocol/Udp4/Udp4.h
Removed extra typedefs on structures to remove error with gcc compiler.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / Udp4 / Udp4.h
CommitLineData
3eb9473e 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 Udp4.h\r
15\r
16Abstract:\r
17\r
18--*/\r
19\r
20#ifndef _UDP4_H_\r
21#define _UDP4_H_\r
22\r
23#include EFI_PROTOCOL_DEFINITION (ServiceBinding)\r
24#include EFI_PROTOCOL_DEFINITION (Ip4)\r
25\r
26//\r
27//GUID definitions\r
28//\r
29#define EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID \\r
30 { 0x83f01464, 0x99bd, 0x45e5, 0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6 }\r
31\r
32#define EFI_UDP4_PROTOCOL_GUID \\r
33 { 0x3ad9df29, 0x4501, 0x478d, 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 }\r
34\r
35typedef struct {\r
36 EFI_HANDLE InstanceHandle;\r
37 EFI_IPv4_ADDRESS LocalAddress;\r
38 UINT16 LocalPort;\r
39 EFI_IPv4_ADDRESS RemoteAddress;\r
40 UINT16 RemotePort;\r
41} EFI_UDP4_SERVICE_POINT; \r
42\r
43typedef struct {\r
44 EFI_HANDLE DriverHandle;\r
45 UINT32 ServiceCount;\r
46 EFI_UDP4_SERVICE_POINT Services[1];\r
47} EFI_UDP4_VARIABLE_DATA;\r
48\r
49//\r
50//ICMP error definitions\r
51//\r
52#define EFI_NETWORK_UNREACHABLE EFIERR(100)\r
53#define EFI_HOST_UNREACHABLE EFIERR(101) \r
54#define EFI_PROTOCOL_UNREACHABLE EFIERR(102)\r
55#define EFI_PORT_UNREACHABLE EFIERR(103)\r
56\r
57EFI_FORWARD_DECLARATION (EFI_UDP4_PROTOCOL);\r
58\r
59//*************************************************\r
60// EFI_UDP4_FRAGMENT_DATA *\r
61//*************************************************\r
62typedef struct {\r
63 UINT32 FragmentLength;\r
64 VOID *FragmentBuffer;\r
65} EFI_UDP4_FRAGMENT_DATA;\r
66\r
67//*************************************************\r
68// EFI_UDP4_SESSION_DATA *\r
69//*************************************************\r
70typedef struct {\r
71 EFI_IPv4_ADDRESS SourceAddress;\r
72 UINT16 SourcePort;\r
73 EFI_IPv4_ADDRESS DestinationAddress;\r
74 UINT16 DestinationPort;\r
75} EFI_UDP4_SESSION_DATA;\r
76\r
77//************************************************\r
78// EFI_UDP4_CONFIG_DATA *\r
79//************************************************\r
80typedef struct {\r
81 //Receiving Filters\r
82 BOOLEAN AcceptBroadcast;\r
83 BOOLEAN AcceptPromiscuous;\r
84 BOOLEAN AcceptAnyPort;\r
85 BOOLEAN AllowDuplicatePort;\r
86 //I/O parameters\r
87 UINT8 TypeOfService;\r
88 UINT8 TimeToLive;\r
89 BOOLEAN DoNotFragment;\r
90 UINT32 ReceiveTimeout;\r
91 UINT32 TransmitTimeout;\r
92 //Access Point\r
93 BOOLEAN UseDefaultAddress;\r
94 EFI_IPv4_ADDRESS StationAddress;\r
95 EFI_IPv4_ADDRESS SubnetMask;\r
96 UINT16 StationPort;\r
97 EFI_IPv4_ADDRESS RemoteAddress;\r
98 UINT16 RemotePort;\r
99} EFI_UDP4_CONFIG_DATA;\r
100\r
101//*******************************************************\r
102// EFI_UDP4_TRANSMIT_DATA *\r
103//*******************************************************\r
104typedef struct {\r
105 EFI_UDP4_SESSION_DATA *UdpSessionData;\r
106 EFI_IPv4_ADDRESS *GatewayAddress;\r
107 UINT32 DataLength;\r
108 UINT32 FragmentCount; \r
109 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];\r
110} EFI_UDP4_TRANSMIT_DATA;\r
111\r
112//*******************************************************\r
113// EFI_UDP4_RECEIVE_DATA *\r
114//*******************************************************\r
115typedef struct {\r
116 EFI_TIME TimeStamp;\r
117 EFI_EVENT RecycleSignal;\r
118 EFI_UDP4_SESSION_DATA UdpSession;\r
119 UINT32 DataLength;\r
120 UINT32 FragmentCount;\r
121 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];\r
122} EFI_UDP4_RECEIVE_DATA;\r
123\r
124\r
125//*******************************************************\r
126// EFI_UDP4_COMPLETION_TOKEN *\r
127//*******************************************************\r
128typedef struct {\r
129 EFI_EVENT Event;\r
130 EFI_STATUS Status;\r
131 union {\r
132 EFI_UDP4_RECEIVE_DATA *RxData;\r
133 EFI_UDP4_TRANSMIT_DATA *TxData;\r
134 } Packet;\r
135} EFI_UDP4_COMPLETION_TOKEN;\r
136\r
137typedef\r
138EFI_STATUS\r
139(EFIAPI *EFI_UDP4_GET_MODE_DATA) (\r
140 IN EFI_UDP4_PROTOCOL *This,\r
141 OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL,\r
142 OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
143 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
144 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
145);\r
146\r
147typedef\r
148EFI_STATUS\r
149(EFIAPI *EFI_UDP4_CONFIGURE) (\r
150 IN EFI_UDP4_PROTOCOL *This,\r
151 IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL\r
152);\r
153\r
154typedef\r
155EFI_STATUS\r
156(EFIAPI *EFI_UDP4_GROUPS) (\r
157 IN EFI_UDP4_PROTOCOL *This,\r
158 IN BOOLEAN JoinFlag,\r
159 IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL\r
160);\r
161\r
162typedef\r
163EFI_STATUS\r
164(EFIAPI *EFI_UDP4_ROUTES) (\r
165 IN EFI_UDP4_PROTOCOL *This,\r
166 IN BOOLEAN DeleteRoute,\r
167 IN EFI_IPv4_ADDRESS *SubnetAddress,\r
168 IN EFI_IPv4_ADDRESS *SubnetMask,\r
169 IN EFI_IPv4_ADDRESS *GatewayAddress\r
170);\r
171\r
172typedef\r
173EFI_STATUS\r
174(EFIAPI *EFI_UDP4_TRANSMIT) (\r
175 IN EFI_UDP4_PROTOCOL *This,\r
176 IN EFI_UDP4_COMPLETION_TOKEN *Token\r
177);\r
178\r
179typedef\r
180EFI_STATUS\r
181(EFIAPI *EFI_UDP4_RECEIVE) (\r
182 IN EFI_UDP4_PROTOCOL *This,\r
183 IN EFI_UDP4_COMPLETION_TOKEN *Token\r
184);\r
185\r
186typedef\r
187EFI_STATUS\r
188(EFIAPI *EFI_UDP4_CANCEL)(\r
189 IN EFI_UDP4_PROTOCOL *This,\r
190 IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL\r
191);\r
192\r
193typedef\r
194EFI_STATUS\r
195(EFIAPI *EFI_UDP4_POLL) (\r
196 IN EFI_UDP4_PROTOCOL *This\r
197);\r
198\r
e5bce275 199struct _EFI_UDP4_PROTOCOL {\r
3eb9473e 200 EFI_UDP4_GET_MODE_DATA GetModeData;\r
201 EFI_UDP4_CONFIGURE Configure;\r
202 EFI_UDP4_GROUPS Groups;\r
203 EFI_UDP4_ROUTES Routes;\r
204 EFI_UDP4_TRANSMIT Transmit;\r
205 EFI_UDP4_RECEIVE Receive;\r
206 EFI_UDP4_CANCEL Cancel;\r
207 EFI_UDP4_POLL Poll;\r
e5bce275 208};\r
3eb9473e 209\r
210extern EFI_GUID gEfiUdp4ServiceBindingProtocolGuid;\r
211extern EFI_GUID gEfiUdp4ProtocolGuid;\r
212extern EFI_GUID gEfiUdp4RegistryDataGuid;\r
213\r
214#endif\r