]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/PxeDhcp4Dxe/PxeDhcp4.h
clean up the un-suitable ';' location when declaring the functions.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / PxeDhcp4Dxe / PxeDhcp4.h
CommitLineData
83cbd279 1/** @file\r
2\r
3Copyright (c) 2004 - 2007, 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 PxeDhcp4.h\r
14\r
15Abstract:\r
16 Common header for PxeDhcp4 protocol driver\r
17\r
18\r
19**/\r
20#ifndef _PXEDHCP4_H\r
21#define _PXEDHCP4_H\r
22\r
772db4bb 23\r
24#include <PiDxe.h>\r
25\r
26#include <Protocol/PxeBaseCode.h>\r
83cbd279 27#include <Protocol/SimpleNetwork.h>\r
28#include <Protocol/PxeDhcp4.h>\r
bd889f3c 29#include <Protocol/PxeDhcp4CallBack.h>\r
772db4bb 30\r
31#include <Library/DebugLib.h>\r
83cbd279 32#include <Library/BaseMemoryLib.h>\r
772db4bb 33#include <Library/MemoryAllocationLib.h>\r
34#include <Library/UefiDriverEntryPoint.h>\r
35#include <Library/UefiBootServicesTableLib.h>\r
83cbd279 36#include <Library/UefiLib.h>\r
37\r
38/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
39\r
40//\r
41// PxeDhcp4 protocol instance data\r
42//\r
43typedef struct {\r
44 //\r
45 // Signature field used to locate beginning of containment record.\r
46 //\r
47 UINTN Signature;\r
48\r
49#define PXE_DHCP4_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('p', 'x', 'D', '4')\r
50 //\r
51 // Device handle the protocol is bound to.\r
52 //\r
53 EFI_HANDLE Handle;\r
54\r
55 //\r
56 // Public PxeDhcp4 protocol interface.\r
57 //\r
58 EFI_PXE_DHCP4_PROTOCOL PxeDhcp4;\r
59\r
60 //\r
61 // Consumed PxeBc, Snp and PxeDhcp4Callback protocol interfaces.\r
62 //\r
63 EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;\r
64 EFI_SIMPLE_NETWORK_PROTOCOL *Snp;\r
65 EFI_PXE_DHCP4_CALLBACK_PROTOCOL *callback;\r
66\r
67 //\r
68 // PxeDhcp4 called function for PxeDhcp4Callback.\r
69 //\r
70 EFI_PXE_DHCP4_FUNCTION function;\r
71\r
72 //\r
73 // Timeout event and flag for PxeDhcp4Callback.\r
74 //\r
75 EFI_EVENT TimeoutEvent;\r
76 BOOLEAN TimeoutOccurred;\r
77\r
78 //\r
79 // Periodic event and flag for PxeDhcp4Callback.\r
80 //\r
81 EFI_EVENT PeriodicEvent;\r
82 BOOLEAN PeriodicOccurred;\r
83\r
84 //\r
85 // DHCP server IP address.\r
86 //\r
87 UINT32 ServerIp;\r
88\r
89 //\r
90 // DHCP renewal and rebinding times, in seconds.\r
91 //\r
92 UINT32 RenewTime;\r
93 UINT32 RebindTime;\r
94 UINT32 LeaseTime;\r
95\r
96 //\r
97 // Number of offers received & allocated offer list.\r
98 //\r
99 UINTN offers;\r
100 DHCP4_PACKET *offer_list;\r
101\r
102 //\r
103 //\r
104 //\r
105 BOOLEAN StopPxeBc;\r
106\r
107} PXE_DHCP4_PRIVATE_DATA;\r
108\r
109#define PXE_DHCP4_PRIVATE_DATA_FROM_THIS(a) CR (a, PXE_DHCP4_PRIVATE_DATA, PxeDhcp4, PXE_DHCP4_PRIVATE_DATA_SIGNATURE)\r
110\r
111/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
112\r
113//\r
114// Protocol function prototypes.\r
115//\r
116extern\r
117EFI_STATUS \r
118EFIAPI\r
119PxeDhcp4Run (\r
120 IN EFI_PXE_DHCP4_PROTOCOL *This,\r
121 IN OPTIONAL UINTN OpLen,\r
122 IN OPTIONAL VOID *OpList\r
ed66e1bc 123 );\r
83cbd279 124\r
125extern\r
126EFI_STATUS \r
127EFIAPI\r
128PxeDhcp4Setup (\r
129 IN EFI_PXE_DHCP4_PROTOCOL *This,\r
130 IN EFI_PXE_DHCP4_DATA *Data\r
ed66e1bc 131 );\r
83cbd279 132\r
133extern\r
134EFI_STATUS \r
135EFIAPI\r
136PxeDhcp4Init (\r
137 IN EFI_PXE_DHCP4_PROTOCOL *This,\r
138 IN UINTN seconds_timeout,\r
139 OUT UINTN *offer_list_entries,\r
140 OUT DHCP4_PACKET **offer_list\r
ed66e1bc 141 );\r
83cbd279 142\r
143extern\r
144EFI_STATUS \r
145EFIAPI\r
146PxeDhcp4Select (\r
147 IN EFI_PXE_DHCP4_PROTOCOL *This,\r
148 IN UINTN seconds_timeout,\r
149 IN DHCP4_PACKET *offer_list\r
ed66e1bc 150 );\r
83cbd279 151\r
152extern\r
153EFI_STATUS \r
154EFIAPI\r
155PxeDhcp4Renew (\r
156 IN EFI_PXE_DHCP4_PROTOCOL *This,\r
157 UINTN seconds_timeout\r
ed66e1bc 158 );\r
83cbd279 159\r
160extern\r
161EFI_STATUS \r
162EFIAPI\r
163PxeDhcp4Rebind (\r
164 IN EFI_PXE_DHCP4_PROTOCOL *This,\r
165 UINTN seconds_timeout\r
ed66e1bc 166 );\r
83cbd279 167\r
168extern\r
169EFI_STATUS \r
170EFIAPI\r
171PxeDhcp4Release (\r
172 IN EFI_PXE_DHCP4_PROTOCOL *This\r
ed66e1bc 173 );\r
83cbd279 174\r
175/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
176\r
177//\r
178// Support function prototypes.\r
179//\r
180extern\r
181UINT16 \r
182htons (\r
183 UINTN n\r
ed66e1bc 184 );\r
83cbd279 185\r
186extern\r
187UINT32 \r
188htonl (\r
189 UINTN n\r
ed66e1bc 190 );\r
83cbd279 191\r
192extern\r
193VOID \r
194EFIAPI\r
195timeout_notify (\r
196 IN EFI_EVENT Event,\r
197 IN VOID *Context\r
ed66e1bc 198 );\r
83cbd279 199\r
200extern\r
201VOID \r
202EFIAPI\r
203periodic_notify (\r
204 IN EFI_EVENT Event,\r
205 IN VOID *Context\r
ed66e1bc 206 );\r
83cbd279 207\r
208extern\r
209EFI_STATUS \r
210find_opt (\r
211 IN DHCP4_PACKET *Packet,\r
212 IN UINT8 OpCode,\r
213 IN UINTN Skip,\r
214 OUT DHCP4_OP **OpPtr\r
ed66e1bc 215 );\r
83cbd279 216\r
217extern\r
218EFI_STATUS \r
219add_opt (\r
220 IN DHCP4_PACKET *Packet,\r
221 IN DHCP4_OP *OpPtr\r
ed66e1bc 222 );\r
83cbd279 223\r
224extern\r
225EFI_STATUS \r
226start_udp (\r
227 IN PXE_DHCP4_PRIVATE_DATA *Private,\r
228 IN OPTIONAL EFI_IP_ADDRESS *station_ip,\r
229 IN OPTIONAL EFI_IP_ADDRESS *subnet_mask\r
ed66e1bc 230 );\r
83cbd279 231\r
232extern\r
233VOID \r
234stop_udp (\r
235 IN PXE_DHCP4_PRIVATE_DATA *Private\r
ed66e1bc 236 );\r
83cbd279 237\r
238extern\r
239EFI_STATUS \r
240start_receive_events (\r
241 IN PXE_DHCP4_PRIVATE_DATA *Private,\r
242 IN UINTN seconds_timeout\r
ed66e1bc 243 );\r
83cbd279 244\r
245extern\r
246VOID \r
247stop_receive_events (\r
248 IN PXE_DHCP4_PRIVATE_DATA *Private\r
ed66e1bc 249 );\r
83cbd279 250\r
251extern\r
252EFI_STATUS \r
253tx_udp (\r
254 IN PXE_DHCP4_PRIVATE_DATA *Private,\r
255 IN EFI_IP_ADDRESS *dest_ip,\r
256 IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,\r
257 IN EFI_IP_ADDRESS *src_ip,\r
258 IN VOID *buffer,\r
259 IN UINTN BufferSize\r
ed66e1bc 260 );\r
83cbd279 261\r
262extern\r
263EFI_STATUS \r
264rx_udp (\r
265 IN PXE_DHCP4_PRIVATE_DATA *Private,\r
266 OUT VOID *buffer,\r
267 OUT UINTN *BufferSize,\r
268 IN OUT EFI_IP_ADDRESS *dest_ip,\r
269 IN OUT EFI_IP_ADDRESS *src_ip,\r
270 IN UINT16 op_flags\r
ed66e1bc 271 );\r
83cbd279 272\r
273extern\r
274EFI_STATUS \r
275tx_rx_udp (\r
276 IN PXE_DHCP4_PRIVATE_DATA *Private,\r
277 IN OUT EFI_IP_ADDRESS *ServerIp,\r
278 IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,\r
279 IN OPTIONAL EFI_IP_ADDRESS *client_ip,\r
280 IN OPTIONAL EFI_IP_ADDRESS *subnet_mask,\r
281 IN DHCP4_PACKET *tx_pkt,\r
282 OUT DHCP4_PACKET *rx_pkt,\r
283 IN INTN\r
284 (\r
285 *rx_vfy)\r
286 (\r
287 IN PXE_DHCP4_PRIVATE_DATA *Private,\r
288 IN DHCP4_PACKET *tx_pkt,\r
289 IN DHCP4_PACKET *rx_pkt,\r
290 IN UINTN rx_pkt_size\r
291 ),\r
292 IN UINTN seconds_timeout\r
ed66e1bc 293 );\r
83cbd279 294\r
295/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
296\r
297//\r
298// Global variable definitions.\r
299//\r
300extern EFI_COMPONENT_NAME_PROTOCOL gPxeDhcp4ComponentName;\r
301extern EFI_COMPONENT_NAME2_PROTOCOL gPxeDhcp4ComponentName2;\r
302\r
303EFI_STATUS\r
304EFIAPI\r
305PxeDhcp4DriverEntryPoint (\r
306 IN EFI_HANDLE ImageHandle,\r
307 IN EFI_SYSTEM_TABLE *SystemTable\r
308 )\r
309/*++\r
310\r
311Routine Description:\r
312 Register Driver Binding protocol for this driver.\r
313\r
314Arguments:\r
315 (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)\r
316\r
317Returns:\r
318 EFI_SUCCESS - Driver loaded.\r
319 other - Driver not loaded.\r
320\r
321--*/\r
322;\r
323\r
324#endif /* _PXEDHCP4_H */\r
325\r
326/* EOF - PxeDhcp4.h */\r