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
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.
18 UEFI Dynamic Host Configuration Protocol 4 Definition
25 #include EFI_PROTOCOL_DEFINITION (ServiceBinding)
26 #include EFI_PROTOCOL_DEFINITION (Udp4)
29 #define EFI_DHCP4_PROTOCOL_GUID \
30 {0x8a219718, 0x4ef5, 0x4761, 0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56}
32 #define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
33 {0x9d9a39d8, 0xbd42, 0x4a73, 0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80}
35 extern EFI_GUID gEfiDhcp4ProtocolGuid
;
36 extern EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid
;
38 EFI_FORWARD_DECLARATION (EFI_DHCP4_PROTOCOL
);
45 } EFI_DHCP4_PACKET_OPTION
;
55 EFI_IPv4_ADDRESS ClientAddr
;
56 EFI_IPv4_ADDRESS YourAddr
;
57 EFI_IPv4_ADDRESS ServerAddr
;
58 EFI_IPv4_ADDRESS GwAddr
;
59 UINT8 ClientHwAddr
[16];
61 CHAR8 BootFileName
[128];
68 EFI_DHCP4_HEADER Header
;
79 Dhcp4Requesting
= 0x3,
83 Dhcp4InitReboot
= 0x7,
88 Dhcp4SendDiscover
= 0x01,
89 Dhcp4RcvdOffer
= 0x02,
90 Dhcp4SelectOffer
= 0x03,
91 Dhcp4SendRequest
= 0x05,
94 Dhcp4SendDecline
= 0x08,
95 Dhcp4BoundCompleted
= 0x09,
96 Dhcp4EnterRenewing
= 0x0a,
97 Dhcp4EnterRebinding
= 0x0b,
98 Dhcp4AddressLost
= 0x0c,
102 typedef EFI_STATUS (*EFI_DHCP4_CALLBACK
)(
103 IN EFI_DHCP4_PROTOCOL
*This
,
105 IN EFI_DHCP4_STATE CurrentState
,
106 IN EFI_DHCP4_EVENT Dhcp4Event
,
107 IN EFI_DHCP4_PACKET
*Packet OPTIONAL
,
108 OUT EFI_DHCP4_PACKET
**NewPacket OPTIONAL
112 UINT32 DiscoverTryCount
;
113 UINT32
*DiscoverTimeout
;
114 UINT32 RequestTryCount
;
115 UINT32
*RequestTimeout
;
116 EFI_IPv4_ADDRESS ClientAddress
;
117 EFI_DHCP4_CALLBACK Dhcp4Callback
;
118 VOID
*CallbackContext
;
120 EFI_DHCP4_PACKET_OPTION
**OptionList
;
121 }EFI_DHCP4_CONFIG_DATA
;
124 EFI_DHCP4_STATE State
;
125 EFI_DHCP4_CONFIG_DATA ConfigData
;
126 EFI_IPv4_ADDRESS ClientAddress
;
127 EFI_MAC_ADDRESS ClientMacAddress
;
128 EFI_IPv4_ADDRESS ServerAddress
;
129 EFI_IPv4_ADDRESS RouterAddress
;
130 EFI_IPv4_ADDRESS SubnetMask
;
132 EFI_DHCP4_PACKET
*ReplyPacket
;
133 } EFI_DHCP4_MODE_DATA
;
136 EFI_IPv4_ADDRESS ListenAddress
;
137 EFI_IPv4_ADDRESS SubnetMask
;
139 } EFI_DHCP4_LISTEN_POINT
;
142 OUT EFI_STATUS Status
;
143 IN EFI_EVENT CompletionEvent
;
144 IN EFI_IPv4_ADDRESS RemoteAddress
;
145 IN UINT16 RemotePort
;
146 IN EFI_IPv4_ADDRESS GatewayAddress
;
147 IN UINT32 ListenPointCount
;
148 IN EFI_DHCP4_LISTEN_POINT
*ListenPoints
;
149 IN UINT32 TimeoutValue
;
150 IN EFI_DHCP4_PACKET
*Packet
;
151 OUT UINT32 ResponseCount
;
152 OUT EFI_DHCP4_PACKET
*ResponseList
;
153 }EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN
;
158 (EFIAPI
*EFI_DHCP4_GET_MODE_DATA
)(
159 IN EFI_DHCP4_PROTOCOL
*This
,
160 OUT EFI_DHCP4_MODE_DATA
*Dhcp4ModeData
165 (EFIAPI
*EFI_DHCP4_CONFIGURE
) (
166 IN EFI_DHCP4_PROTOCOL
*This
,
167 IN EFI_DHCP4_CONFIG_DATA
*Dhcp4CfgData OPTIONAL
172 (EFIAPI
*EFI_DHCP4_START
) (
173 IN EFI_DHCP4_PROTOCOL
*This
,
174 IN EFI_EVENT CompletionEvent OPTIONAL
179 (EFIAPI
*EFI_DHCP4_RENEW
) (
180 IN EFI_DHCP4_PROTOCOL
*This
,
181 IN BOOLEAN RebindRequest
,
182 IN EFI_EVENT CompletionEvent OPTIONAL
187 (EFIAPI
*EFI_DHCP4_RELEASE
) (
188 IN EFI_DHCP4_PROTOCOL
*This
192 (EFIAPI
*EFI_DHCP4_STOP
) (
193 IN EFI_DHCP4_PROTOCOL
*This
198 (EFIAPI
*EFI_DHCP4_BUILD
) (
199 IN EFI_DHCP4_PROTOCOL
*This
,
200 IN EFI_DHCP4_PACKET
*SeedPacket
,
201 IN UINT32 DeleteCount
,
202 IN UINT8
*DeleteList OPTIONAL
,
203 IN UINT32 AppendCount
,
204 IN EFI_DHCP4_PACKET_OPTION
*AppendList
[] OPTIONAL
,
205 OUT EFI_DHCP4_PACKET
**NewPacket
210 (EFIAPI
*EFI_DHCP4_TRANSMIT_RECEIVE
) (
211 IN EFI_DHCP4_PROTOCOL
*This
,
212 IN EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN
*Token
218 (EFIAPI
*EFI_DHCP4_PARSE
) (
219 IN EFI_DHCP4_PROTOCOL
*This
,
220 IN EFI_DHCP4_PACKET
*Packet
,
221 IN OUT UINT32
*OptionCount
,
222 OUT EFI_DHCP4_PACKET_OPTION
*PacketOptionList
[] OPTIONAL
225 typedef struct _EFI_DHCP4_PROTOCOL
{
226 EFI_DHCP4_GET_MODE_DATA GetModeData
;
227 EFI_DHCP4_CONFIGURE Configure
;
228 EFI_DHCP4_START Start
;
229 EFI_DHCP4_RENEW RenewRebind
;
230 EFI_DHCP4_RELEASE Release
;
232 EFI_DHCP4_BUILD Build
;
233 EFI_DHCP4_TRANSMIT_RECEIVE TransmitReceive
;
234 EFI_DHCP4_PARSE Parse
;
235 } EFI_DHCP4_PROTOCOL
;