]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Efi/Protocol/Ip4/Ip4.h
Removed extra typedefs on structures to remove error with gcc compiler.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / Ip4 / Ip4.h
CommitLineData
3eb9473e 1/*++\r
2\r
3Copyright (c) 2005 - 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 Ip4.h\r
15\r
16Abstract:\r
17\r
18 UEFI IPv4 protocol.\r
19\r
20--*/\r
21\r
22#ifndef _IP4_H_\r
23#define _IP4_H_\r
24\r
25#include EFI_PROTOCOL_DEFINITION (ManagedNetwork)\r
26#include EFI_PROTOCOL_DEFINITION (ServiceBinding)\r
27\r
28//\r
29//GUID definitions\r
30//\r
31#define EFI_IP4_SERVICE_BINDING_PROTOCOL_GUID \\r
32 {0xc51711e7, 0xb4bf, 0x404a, 0xbf, 0xb8, 0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4}\r
33\r
34#define EFI_IP4_PROTOCOL_GUID \\r
35 {0x41d94cd2, 0x35b6, 0x455a, 0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd}\r
36\r
37EFI_FORWARD_DECLARATION (EFI_IP4_PROTOCOL);\r
38\r
39typedef struct {\r
40 EFI_HANDLE InstanceHandle;\r
41 EFI_IPv4_ADDRESS Ip4Address;\r
42 EFI_IPv4_ADDRESS SubnetMask;\r
43} EFI_IP4_ADDRESS_PAIR; \r
44\r
45typedef struct {\r
46 EFI_HANDLE DriverHandle;\r
47 UINT32 AddressCount;\r
48 EFI_IP4_ADDRESS_PAIR AddressPairs[1];\r
49} EFI_IP4_VARIABLE_DATA;\r
50\r
51typedef struct {\r
52 UINT8 DefaultProtocol;\r
53 BOOLEAN AcceptAnyProtocol;\r
54 BOOLEAN AcceptIcmpErrors;\r
55 BOOLEAN AcceptBroadcast;\r
56 BOOLEAN AcceptPromiscuous;\r
57 BOOLEAN UseDefaultAddress;\r
58 EFI_IPv4_ADDRESS StationAddress;\r
59 EFI_IPv4_ADDRESS SubnetMask;\r
60 UINT8 TypeOfService;\r
61 UINT8 TimeToLive;\r
62 BOOLEAN DoNotFragment;\r
63 BOOLEAN RawData;\r
64 UINT32 ReceiveTimeout;\r
65 UINT32 TransmitTimeout;\r
66} EFI_IP4_CONFIG_DATA;\r
67\r
68\r
69typedef struct _EFI_IP4_ROUTE_TABLE {\r
70 EFI_IPv4_ADDRESS SubnetAddress;\r
71 EFI_IPv4_ADDRESS SubnetMask;\r
72 EFI_IPv4_ADDRESS GatewayAddress;\r
73} EFI_IP4_ROUTE_TABLE;\r
74\r
75typedef struct _EFI_IP4_ICMP_TYPE {\r
76 UINT8 Type;\r
77 UINT8 Code;\r
78} EFI_IP4_ICMP_TYPE;\r
79\r
80typedef struct {\r
81 BOOLEAN IsStarted;\r
82\r
83 EFI_IP4_CONFIG_DATA ConfigData;\r
84 BOOLEAN IsConfigured;\r
85\r
86 UINT32 GroupCount;\r
87 EFI_IPv4_ADDRESS *GroupTable;\r
88\r
89 UINT32 RouteCount;\r
90 EFI_IP4_ROUTE_TABLE *RouteTable;\r
91\r
92 UINT32 IcmpTypeCount;\r
93 EFI_IP4_ICMP_TYPE *IcmpTypeList;\r
94} EFI_IP4_MODE_DATA;\r
95\r
96#pragma pack(1)\r
97typedef struct _EFI_IP4_HEADER {\r
98 UINT8 HeaderLength:4;\r
99 UINT8 Version:4;\r
100 UINT8 TypeOfService;\r
101 UINT16 TotalLength;\r
102 UINT16 Identification;\r
103 UINT16 Fragmentation;\r
104 UINT8 TimeToLive;\r
105 UINT8 Protocol;\r
106 UINT16 Checksum;\r
107 EFI_IPv4_ADDRESS SourceAddress;\r
108 EFI_IPv4_ADDRESS DestinationAddress;\r
109} EFI_IP4_HEADER;\r
110#pragma pack()\r
111\r
112typedef struct _EFI_IP4_FRAGMENT_DATA {\r
113 UINT32 FragmentLength;\r
114 VOID *FragmentBuffer;\r
115} EFI_IP4_FRAGMENT_DATA;\r
116\r
117\r
118typedef struct _EFI_IP4_OVERRIDE_DATA {\r
119 EFI_IPv4_ADDRESS SourceAddress;\r
120 EFI_IPv4_ADDRESS GatewayAddress;\r
121\r
122 UINT8 Protocol;\r
123 UINT8 TypeOfService;\r
124 UINT8 TimeToLive;\r
125 BOOLEAN DoNotFragment;\r
126} EFI_IP4_OVERRIDE_DATA;\r
127\r
128typedef struct _EFI_IP4_TRANSMIT_DATA {\r
129 EFI_IPv4_ADDRESS DestinationAddress;\r
130\r
131 EFI_IP4_OVERRIDE_DATA *OverrideData;\r
132 UINT32 OptionsLength;\r
133 VOID *OptionsBuffer;\r
134\r
135 UINT32 TotalDataLength;\r
136 UINT32 FragmentCount;\r
137 EFI_IP4_FRAGMENT_DATA FragmentTable[1];\r
138} EFI_IP4_TRANSMIT_DATA;\r
139\r
140typedef struct _EFI_IP4_RECEIVE_DATA {\r
141 EFI_TIME TimeStamp;\r
142 EFI_EVENT RecycleSignal;\r
143\r
144 UINT32 HeaderLength;\r
145 EFI_IP4_HEADER *Header;\r
146\r
147 UINT32 OptionsLength;\r
148 VOID *Options;\r
149\r
150 UINT32 DataLength;\r
151 UINT32 FragmentCount;\r
152 EFI_IP4_FRAGMENT_DATA FragmentTable[1];\r
153} EFI_IP4_RECEIVE_DATA;\r
154\r
155typedef struct _EFI_IP4_COMPLETION_TOKEN {\r
156 EFI_EVENT Event;\r
157 EFI_STATUS Status;\r
158\r
159 union {\r
160 EFI_IP4_RECEIVE_DATA *RxData;\r
161 EFI_IP4_TRANSMIT_DATA *TxData;\r
162 } Packet;\r
163} EFI_IP4_COMPLETION_TOKEN;\r
164\r
165typedef\r
166EFI_STATUS\r
167(EFIAPI *EFI_IP4_GET_MODE_DATA) (\r
168 IN EFI_IP4_PROTOCOL *This,\r
169 OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
170 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
171 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
172 );\r
173\r
174typedef \r
175EFI_STATUS\r
176(EFIAPI *EFI_IP4_CONFIGURE) (\r
177 IN EFI_IP4_PROTOCOL *This,\r
178 IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL\r
179 );\r
180\r
181typedef \r
182EFI_STATUS\r
183(EFIAPI *EFI_IP4_GROUPS) (\r
184 IN EFI_IP4_PROTOCOL *This,\r
185 IN BOOLEAN JoinFlag,\r
186 IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
187 );\r
188\r
189typedef \r
190EFI_STATUS\r
191(EFIAPI *EFI_IP4_ROUTES) (\r
192 IN EFI_IP4_PROTOCOL *This,\r
193 IN BOOLEAN DeleteRoute,\r
194 IN EFI_IPv4_ADDRESS *SubnetAddress,\r
195 IN EFI_IPv4_ADDRESS *SubnetMask,\r
196 IN EFI_IPv4_ADDRESS *GatewayAddress \r
197 );\r
198\r
199typedef \r
200EFI_STATUS\r
201(EFIAPI *EFI_IP4_TRANSMIT) (\r
202 IN EFI_IP4_PROTOCOL *This,\r
203 IN EFI_IP4_COMPLETION_TOKEN *Token\r
204 );\r
205\r
206typedef \r
207EFI_STATUS\r
208(EFIAPI *EFI_IP4_RECEIVE) (\r
209 IN EFI_IP4_PROTOCOL *This,\r
210 IN EFI_IP4_COMPLETION_TOKEN *Token\r
211 );\r
212\r
213typedef\r
214EFI_STATUS\r
215(EFIAPI *EFI_IP4_CANCEL) (\r
216 IN EFI_IP4_PROTOCOL *This,\r
217 IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
218 );\r
219\r
220typedef \r
221EFI_STATUS\r
222(EFIAPI *EFI_IP4_POLL) (\r
223 IN EFI_IP4_PROTOCOL *This\r
224 );\r
225\r
e5bce275 226struct _EFI_IP4_PROTOCOL {\r
3eb9473e 227 EFI_IP4_GET_MODE_DATA GetModeData;\r
228 EFI_IP4_CONFIGURE Configure;\r
229 EFI_IP4_GROUPS Groups;\r
230 EFI_IP4_ROUTES Routes;\r
231 EFI_IP4_TRANSMIT Transmit;\r
232 EFI_IP4_RECEIVE Receive;\r
233 EFI_IP4_CANCEL Cancel;\r
234 EFI_IP4_POLL Poll;\r
e5bce275 235};\r
3eb9473e 236\r
237\r
238extern EFI_GUID gEfiIp4ServiceBindingProtocolGuid;\r
239extern EFI_GUID gEfiIp4RegistryDataGuid;\r
240extern EFI_GUID gEfiIp4ProtocolGuid;\r
241#endif\r