]> git.proxmox.com Git - mirror_edk2.git/blob - EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4.h
remove unused PCD
[mirror_edk2.git] / EdkModulePkg / Universal / Network / PxeDhcp4 / Dxe / PxeDhcp4.h
1 /*++
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13 PxeDhcp4.h
14
15 Abstract:
16 Common header for PxeDhcp4 protocol driver
17
18 --*/
19 #ifndef _PXEDHCP4_H
20 #define _PXEDHCP4_H
21
22 //
23 // PxeDhcp4 protocol instance data
24 //
25 typedef struct {
26 //
27 // Signature field used to locate beginning of containment record.
28 //
29 UINTN Signature;
30
31 #define PXE_DHCP4_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('p', 'x', 'D', '4')
32 //
33 // Device handle the protocol is bound to.
34 //
35 EFI_HANDLE Handle;
36
37 //
38 // Public PxeDhcp4 protocol interface.
39 //
40 EFI_PXE_DHCP4_PROTOCOL PxeDhcp4;
41
42 //
43 // Consumed PxeBc, Snp and PxeDhcp4Callback protocol interfaces.
44 //
45 EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
46 EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
47 EFI_PXE_DHCP4_CALLBACK_PROTOCOL *callback;
48
49 //
50 // PxeDhcp4 called function for PxeDhcp4Callback.
51 //
52 EFI_PXE_DHCP4_FUNCTION function;
53
54 //
55 // Timeout event and flag for PxeDhcp4Callback.
56 //
57 EFI_EVENT TimeoutEvent;
58 BOOLEAN TimeoutOccurred;
59
60 //
61 // Periodic event and flag for PxeDhcp4Callback.
62 //
63 EFI_EVENT PeriodicEvent;
64 BOOLEAN PeriodicOccurred;
65
66 //
67 // DHCP server IP address.
68 //
69 UINT32 ServerIp;
70
71 //
72 // DHCP renewal and rebinding times, in seconds.
73 //
74 UINT32 RenewTime;
75 UINT32 RebindTime;
76 UINT32 LeaseTime;
77
78 //
79 // Number of offers received & allocated offer list.
80 //
81 UINTN offers;
82 DHCP4_PACKET *offer_list;
83
84 //
85 //
86 //
87 BOOLEAN StopPxeBc;
88
89 } PXE_DHCP4_PRIVATE_DATA;
90
91 #define PXE_DHCP4_PRIVATE_DATA_FROM_THIS(a) CR (a, PXE_DHCP4_PRIVATE_DATA, PxeDhcp4, PXE_DHCP4_PRIVATE_DATA_SIGNATURE)
92
93 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
94
95 //
96 // Protocol function prototypes.
97 //
98 extern
99 EFI_STATUS
100 EFIAPI
101 PxeDhcp4Run (
102 IN EFI_PXE_DHCP4_PROTOCOL *This,
103 IN OPTIONAL UINTN OpLen,
104 IN OPTIONAL VOID *OpList
105 )
106 ;
107
108 extern
109 EFI_STATUS
110 EFIAPI
111 PxeDhcp4Setup (
112 IN EFI_PXE_DHCP4_PROTOCOL *This,
113 IN EFI_PXE_DHCP4_DATA *Data
114 )
115 ;
116
117 extern
118 EFI_STATUS
119 EFIAPI
120 PxeDhcp4Init (
121 IN EFI_PXE_DHCP4_PROTOCOL *This,
122 IN UINTN seconds_timeout,
123 OUT UINTN *offer_list_entries,
124 OUT DHCP4_PACKET **offer_list
125 )
126 ;
127
128 extern
129 EFI_STATUS
130 EFIAPI
131 PxeDhcp4Select (
132 IN EFI_PXE_DHCP4_PROTOCOL *This,
133 IN UINTN seconds_timeout,
134 IN DHCP4_PACKET *offer_list
135 )
136 ;
137
138 extern
139 EFI_STATUS
140 EFIAPI
141 PxeDhcp4Renew (
142 IN EFI_PXE_DHCP4_PROTOCOL *This,
143 UINTN seconds_timeout
144 )
145 ;
146
147 extern
148 EFI_STATUS
149 EFIAPI
150 PxeDhcp4Rebind (
151 IN EFI_PXE_DHCP4_PROTOCOL *This,
152 UINTN seconds_timeout
153 )
154 ;
155
156 extern
157 EFI_STATUS
158 EFIAPI
159 PxeDhcp4Release (
160 IN EFI_PXE_DHCP4_PROTOCOL *This
161 )
162 ;
163
164 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
165
166 //
167 // Support function prototypes.
168 //
169 extern
170 UINT16
171 htons (
172 UINTN n
173 )
174 ;
175
176 extern
177 UINT32
178 htonl (
179 UINTN n
180 )
181 ;
182
183 extern
184 VOID
185 EFIAPI
186 timeout_notify (
187 IN EFI_EVENT Event,
188 IN VOID *Context
189 )
190 ;
191
192 extern
193 VOID
194 EFIAPI
195 periodic_notify (
196 IN EFI_EVENT Event,
197 IN VOID *Context
198 )
199 ;
200
201 extern
202 EFI_STATUS
203 find_opt (
204 IN DHCP4_PACKET *Packet,
205 IN UINT8 OpCode,
206 IN UINTN Skip,
207 OUT DHCP4_OP **OpPtr
208 )
209 ;
210
211 extern
212 EFI_STATUS
213 add_opt (
214 IN DHCP4_PACKET *Packet,
215 IN DHCP4_OP *OpPtr
216 )
217 ;
218
219 extern
220 EFI_STATUS
221 start_udp (
222 IN PXE_DHCP4_PRIVATE_DATA *Private,
223 IN OPTIONAL EFI_IP_ADDRESS *station_ip,
224 IN OPTIONAL EFI_IP_ADDRESS *subnet_mask
225 )
226 ;
227
228 extern
229 VOID
230 stop_udp (
231 IN PXE_DHCP4_PRIVATE_DATA *Private
232 )
233 ;
234
235 extern
236 EFI_STATUS
237 start_receive_events (
238 IN PXE_DHCP4_PRIVATE_DATA *Private,
239 IN UINTN seconds_timeout
240 )
241 ;
242
243 extern
244 VOID
245 stop_receive_events (
246 IN PXE_DHCP4_PRIVATE_DATA *Private
247 )
248 ;
249
250 extern
251 EFI_STATUS
252 tx_udp (
253 IN PXE_DHCP4_PRIVATE_DATA *Private,
254 IN EFI_IP_ADDRESS *dest_ip,
255 IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,
256 IN EFI_IP_ADDRESS *src_ip,
257 IN VOID *buffer,
258 IN UINTN BufferSize
259 )
260 ;
261
262 extern
263 EFI_STATUS
264 rx_udp (
265 IN PXE_DHCP4_PRIVATE_DATA *Private,
266 OUT VOID *buffer,
267 OUT UINTN *BufferSize,
268 IN OUT EFI_IP_ADDRESS *dest_ip,
269 IN OUT EFI_IP_ADDRESS *src_ip,
270 IN UINT16 op_flags
271 )
272 ;
273
274 extern
275 EFI_STATUS
276 tx_rx_udp (
277 IN PXE_DHCP4_PRIVATE_DATA *Private,
278 IN OUT EFI_IP_ADDRESS *ServerIp,
279 IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,
280 IN OPTIONAL EFI_IP_ADDRESS *client_ip,
281 IN OPTIONAL EFI_IP_ADDRESS *subnet_mask,
282 IN DHCP4_PACKET *tx_pkt,
283 OUT DHCP4_PACKET *rx_pkt,
284 IN INTN
285 (
286 *rx_vfy)
287 (
288 IN PXE_DHCP4_PRIVATE_DATA *Private,
289 IN DHCP4_PACKET *tx_pkt,
290 IN DHCP4_PACKET *rx_pkt,
291 IN UINTN rx_pkt_size
292 ),
293 IN UINTN seconds_timeout
294 )
295 ;
296
297 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
298
299 //
300 // Global variable definitions.
301 //
302 extern EFI_DRIVER_BINDING_PROTOCOL gPxeDhcp4DriverBinding;
303 extern EFI_COMPONENT_NAME_PROTOCOL gPxeDhcp4ComponentName;
304
305 #endif /* _PXEDHCP4_H */
306
307 /* EOF - PxeDhcp4.h */