\r
typedef struct _EFI_DHCP4_PROTOCOL EFI_DHCP4_PROTOCOL;\r
\r
-\r
#pragma pack(1)\r
typedef struct {\r
///\r
/// DHCP option code.\r
///\r
- UINT8 OpCode;\r
+ UINT8 OpCode;\r
///\r
/// Length of the DHCP option data. Not present if OpCode is 0 or 255.\r
///\r
- UINT8 Length;\r
+ UINT8 Length;\r
///\r
/// Start of the DHCP option data. Not present if OpCode is 0 or 255 or if Length is zero.\r
///\r
- UINT8 Data[1];\r
+ UINT8 Data[1];\r
} EFI_DHCP4_PACKET_OPTION;\r
#pragma pack()\r
\r
-\r
#pragma pack(1)\r
///\r
/// EFI_DHCP4_PACKET defines the format of DHCPv4 packets. See RFC 2131 for more information.\r
///\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 HwType;\r
- UINT8 HwAddrLen;\r
- UINT8 Hops;\r
- UINT32 Xid;\r
- UINT16 Seconds;\r
- UINT16 Reserved;\r
- EFI_IPv4_ADDRESS ClientAddr; ///< Client IP address from client.\r
- EFI_IPv4_ADDRESS YourAddr; ///< Client IP address from server.\r
- EFI_IPv4_ADDRESS ServerAddr; ///< IP address of next server in bootstrap.\r
- EFI_IPv4_ADDRESS GatewayAddr; ///< Relay agent IP address.\r
- UINT8 ClientHwAddr[16]; ///< Client hardware address.\r
- CHAR8 ServerName[64];\r
- CHAR8 BootFileName[128];\r
-}EFI_DHCP4_HEADER;\r
+ UINT8 OpCode;\r
+ UINT8 HwType;\r
+ UINT8 HwAddrLen;\r
+ UINT8 Hops;\r
+ UINT32 Xid;\r
+ UINT16 Seconds;\r
+ UINT16 Reserved;\r
+ EFI_IPv4_ADDRESS ClientAddr; ///< Client IP address from client.\r
+ EFI_IPv4_ADDRESS YourAddr; ///< Client IP address from server.\r
+ EFI_IPv4_ADDRESS ServerAddr; ///< IP address of next server in bootstrap.\r
+ EFI_IPv4_ADDRESS GatewayAddr; ///< Relay agent IP address.\r
+ UINT8 ClientHwAddr[16]; ///< Client hardware address.\r
+ CHAR8 ServerName[64];\r
+ CHAR8 BootFileName[128];\r
+} EFI_DHCP4_HEADER;\r
#pragma pack()\r
\r
-\r
#pragma pack(1)\r
typedef struct {\r
///\r
/// Size of the EFI_DHCP4_PACKET buffer.\r
///\r
- UINT32 Size;\r
+ UINT32 Size;\r
///\r
/// Length of the EFI_DHCP4_PACKET from the first byte of the Header field\r
/// to the last byte of the Option[] field.\r
///\r
- UINT32 Length;\r
+ UINT32 Length;\r
\r
struct {\r
///\r
/// DHCP packet header.\r
///\r
- EFI_DHCP4_HEADER Header;\r
+ EFI_DHCP4_HEADER Header;\r
///\r
/// DHCP magik cookie in network byte order.\r
///\r
- UINT32 Magik;\r
+ UINT32 Magik;\r
///\r
/// Start of the DHCP packed option data.\r
///\r
- UINT8 Option[1];\r
+ UINT8 Option[1];\r
} Dhcp4;\r
} EFI_DHCP4_PACKET;\r
#pragma pack()\r
\r
-\r
typedef enum {\r
///\r
/// The EFI DHCPv4 Protocol driver is stopped.\r
///\r
- Dhcp4Stopped = 0x0,\r
+ Dhcp4Stopped = 0x0,\r
///\r
/// The EFI DHCPv4 Protocol driver is inactive.\r
///\r
- Dhcp4Init = 0x1,\r
+ Dhcp4Init = 0x1,\r
///\r
/// The EFI DHCPv4 Protocol driver is collecting DHCP offer packets from DHCP servers.\r
///\r
- Dhcp4Selecting = 0x2,\r
+ Dhcp4Selecting = 0x2,\r
///\r
/// The EFI DHCPv4 Protocol driver has sent the request to the DHCP server and is waiting for a response.\r
///\r
- Dhcp4Requesting = 0x3,\r
+ Dhcp4Requesting = 0x3,\r
///\r
/// The DHCP configuration has completed.\r
///\r
- Dhcp4Bound = 0x4,\r
+ Dhcp4Bound = 0x4,\r
///\r
/// The DHCP configuration is being renewed and another request has\r
/// been sent out, but it has not received a response from the server yet.\r
///\r
- Dhcp4Renewing = 0x5,\r
+ Dhcp4Renewing = 0x5,\r
///\r
/// The DHCP configuration has timed out and the EFI DHCPv4\r
/// Protocol driver is trying to extend the lease time.\r
///\r
- Dhcp4Rebinding = 0x6,\r
+ Dhcp4Rebinding = 0x6,\r
///\r
/// The EFI DHCPv4 Protocol driver was initialized with a previously\r
/// allocated or known IP address.\r
///\r
- Dhcp4InitReboot = 0x7,\r
+ Dhcp4InitReboot = 0x7,\r
///\r
/// The EFI DHCPv4 Protocol driver is seeking to reuse the previously\r
/// allocated IP address by sending a request to the DHCP server.\r
///\r
- Dhcp4Rebooting = 0x8\r
+ Dhcp4Rebooting = 0x8\r
} EFI_DHCP4_STATE;\r
\r
-\r
-typedef enum{\r
+typedef enum {\r
///\r
/// The packet to start the configuration sequence is about to be sent.\r
///\r
- Dhcp4SendDiscover = 0x01,\r
+ Dhcp4SendDiscover = 0x01,\r
///\r
/// A reply packet was just received.\r
///\r
- Dhcp4RcvdOffer = 0x02,\r
+ Dhcp4RcvdOffer = 0x02,\r
///\r
/// It is time for Dhcp4Callback to select an offer.\r
///\r
- Dhcp4SelectOffer = 0x03,\r
+ Dhcp4SelectOffer = 0x03,\r
///\r
/// A request packet is about to be sent.\r
///\r
- Dhcp4SendRequest = 0x04,\r
+ Dhcp4SendRequest = 0x04,\r
///\r
/// A DHCPACK packet was received and will be passed to Dhcp4Callback.\r
///\r
- Dhcp4RcvdAck = 0x05,\r
+ Dhcp4RcvdAck = 0x05,\r
///\r
/// A DHCPNAK packet was received and will be passed to Dhcp4Callback.\r
///\r
- Dhcp4RcvdNak = 0x06,\r
+ Dhcp4RcvdNak = 0x06,\r
///\r
/// A decline packet is about to be sent.\r
///\r
- Dhcp4SendDecline = 0x07,\r
+ Dhcp4SendDecline = 0x07,\r
///\r
/// The DHCP configuration process has completed. No packet is associated with this event.\r
///\r
/// It is time to enter the Dhcp4Renewing state and to contact the server\r
/// that originally issued the network address. No packet is associated with this event.\r
///\r
- Dhcp4EnterRenewing = 0x09,\r
+ Dhcp4EnterRenewing = 0x09,\r
///\r
/// It is time to enter the Dhcp4Rebinding state and to contact any server.\r
/// No packet is associated with this event.\r
/// the user released the configuration, or a DHCPNAK packet was received in\r
/// the Dhcp4Renewing or Dhcp4Rebinding state. No packet is associated with this event.\r
///\r
- Dhcp4AddressLost = 0x0b,\r
+ Dhcp4AddressLost = 0x0b,\r
///\r
/// The DHCP process failed because a DHCPNAK packet was received or the user\r
/// aborted the DHCP process at a time when the configuration was not available yet.\r
/// No packet is associated with this event.\r
///\r
- Dhcp4Fail = 0x0c\r
+ Dhcp4Fail = 0x0c\r
} EFI_DHCP4_EVENT;\r
\r
/**\r
/// event and waiting for a response during the Dhcp4RcvdOffer event.\r
/// Set to zero to use the default try counts and timeout values.\r
///\r
- UINT32 DiscoverTryCount;\r
+ UINT32 DiscoverTryCount;\r
///\r
/// The maximum amount of time (in seconds) to wait for returned packets in each\r
/// of the retries. Timeout values of zero will default to a timeout value\r
/// of one second. Set to NULL to use default timeout values.\r
///\r
- UINT32 *DiscoverTimeout;\r
+ UINT32 *DiscoverTimeout;\r
///\r
/// The number of times to try sending a packet during the Dhcp4SendRequest event\r
/// and waiting for a response during the Dhcp4RcvdAck event before accepting\r
/// failure. Set to zero to use the default try counts and timeout values.\r
///\r
- UINT32 RequestTryCount;\r
+ UINT32 RequestTryCount;\r
///\r
/// The maximum amount of time (in seconds) to wait for return packets in each of the retries.\r
/// Timeout values of zero will default to a timeout value of one second.\r
/// Set to NULL to use default timeout values.\r
///\r
- UINT32 *RequestTimeout;\r
+ UINT32 *RequestTimeout;\r
///\r
/// For a DHCPDISCOVER, setting this parameter to the previously allocated IP\r
/// address will cause the EFI DHCPv4 Protocol driver to enter the Dhcp4InitReboot state.\r
/// For a DHCPINFORM this parameter should be set to the client network address\r
/// which was assigned to the client during a DHCPDISCOVER.\r
///\r
- EFI_IPv4_ADDRESS ClientAddress;\r
+ EFI_IPv4_ADDRESS ClientAddress;\r
///\r
/// The callback function to intercept various events that occurred in\r
/// the DHCP configuration process. Set to NULL to ignore all those events.\r
///\r
- EFI_DHCP4_CALLBACK Dhcp4Callback;\r
+ EFI_DHCP4_CALLBACK Dhcp4Callback;\r
///\r
/// The pointer to the context that will be passed to Dhcp4Callback when it is called.\r
///\r
- VOID *CallbackContext;\r
+ VOID *CallbackContext;\r
///\r
/// Number of DHCP options in the OptionList.\r
///\r
- UINT32 OptionCount;\r
+ UINT32 OptionCount;\r
///\r
/// List of DHCP options to be included in every packet that is sent during the\r
/// Dhcp4SendDiscover event. Pad options are appended automatically by DHCP driver\r
/// ignored by the driver. OptionList can be freed after EFI_DHCP4_PROTOCOL.Configure()\r
/// returns. Ignored if OptionCount is zero.\r
///\r
- EFI_DHCP4_PACKET_OPTION **OptionList;\r
+ EFI_DHCP4_PACKET_OPTION **OptionList;\r
} EFI_DHCP4_CONFIG_DATA;\r
\r
-\r
typedef struct {\r
///\r
/// The EFI DHCPv4 Protocol driver operating state.\r
///\r
- EFI_DHCP4_STATE State;\r
+ EFI_DHCP4_STATE State;\r
///\r
/// The configuration data of the current EFI DHCPv4 Protocol driver instance.\r
///\r
- EFI_DHCP4_CONFIG_DATA ConfigData;\r
+ EFI_DHCP4_CONFIG_DATA ConfigData;\r
///\r
/// The client IP address that was acquired from the DHCP server. If it is zero,\r
/// the DHCP acquisition has not completed yet and the following fields in this structure are undefined.\r
///\r
- EFI_IPv4_ADDRESS ClientAddress;\r
+ EFI_IPv4_ADDRESS ClientAddress;\r
///\r
/// The local hardware address.\r
///\r
- EFI_MAC_ADDRESS ClientMacAddress;\r
+ EFI_MAC_ADDRESS ClientMacAddress;\r
///\r
/// The server IP address that is providing the DHCP service to this client.\r
///\r
- EFI_IPv4_ADDRESS ServerAddress;\r
+ EFI_IPv4_ADDRESS ServerAddress;\r
///\r
/// The router IP address that was acquired from the DHCP server.\r
/// May be zero if the server does not offer this address.\r
///\r
- EFI_IPv4_ADDRESS RouterAddress;\r
+ EFI_IPv4_ADDRESS RouterAddress;\r
///\r
/// The subnet mask of the connected network that was acquired from the DHCP server.\r
///\r
- EFI_IPv4_ADDRESS SubnetMask;\r
+ EFI_IPv4_ADDRESS SubnetMask;\r
///\r
/// The lease time (in 1-second units) of the configured IP address.\r
/// The value 0xFFFFFFFF means that the lease time is infinite.\r
/// A default lease of 7 days is used if the DHCP server does not provide a value.\r
///\r
- UINT32 LeaseTime;\r
+ UINT32 LeaseTime;\r
///\r
/// The cached latest DHCPACK or DHCPNAK or BOOTP REPLY packet. May be NULL if no packet is cached.\r
///\r
- EFI_DHCP4_PACKET *ReplyPacket;\r
+ EFI_DHCP4_PACKET *ReplyPacket;\r
} EFI_DHCP4_MODE_DATA;\r
\r
-\r
typedef struct {\r
///\r
/// Alternate listening address. It can be a unicast, multicast, or broadcast address.\r
///\r
- EFI_IPv4_ADDRESS ListenAddress;\r
+ EFI_IPv4_ADDRESS ListenAddress;\r
///\r
/// The subnet mask of above listening unicast/broadcast IP address.\r
/// Ignored if ListenAddress is a multicast address.\r
///\r
- EFI_IPv4_ADDRESS SubnetMask;\r
+ EFI_IPv4_ADDRESS SubnetMask;\r
///\r
/// Alternate station source (or listening) port number.\r
/// If zero, then the default station port number (68) will be used.\r
///\r
- UINT16 ListenPort;\r
+ UINT16 ListenPort;\r
} EFI_DHCP4_LISTEN_POINT;\r
\r
-\r
typedef struct {\r
///\r
/// The completion status of transmitting and receiving.\r
///\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
///\r
/// If not NULL, the event that will be signaled when the collection process\r
/// completes. If NULL, this function will busy-wait until the collection process competes.\r
///\r
- EFI_EVENT CompletionEvent;\r
+ EFI_EVENT CompletionEvent;\r
///\r
/// The pointer to the server IP address. This address may be a unicast, multicast, or broadcast address.\r
///\r
- EFI_IPv4_ADDRESS RemoteAddress;\r
+ EFI_IPv4_ADDRESS RemoteAddress;\r
///\r
/// The server listening port number. If zero, the default server listening port number (67) will be used.\r
///\r
- UINT16 RemotePort;\r
+ UINT16 RemotePort;\r
///\r
/// The pointer to the gateway address to override the existing setting.\r
///\r
- EFI_IPv4_ADDRESS GatewayAddress;\r
+ EFI_IPv4_ADDRESS GatewayAddress;\r
///\r
/// The number of entries in ListenPoints. If zero, the default station address and port number 68 are used.\r
///\r
- UINT32 ListenPointCount;\r
+ UINT32 ListenPointCount;\r
///\r
/// An array of station address and port number pairs that are used as receiving filters.\r
/// The first entry is also used as the source address and source port of the outgoing packet.\r
///\r
- EFI_DHCP4_LISTEN_POINT *ListenPoints;\r
+ EFI_DHCP4_LISTEN_POINT *ListenPoints;\r
///\r
/// The number of seconds to collect responses. Zero is invalid.\r
///\r
- UINT32 TimeoutValue;\r
+ UINT32 TimeoutValue;\r
///\r
/// The pointer to the packet to be transmitted.\r
///\r
- EFI_DHCP4_PACKET *Packet;\r
+ EFI_DHCP4_PACKET *Packet;\r
///\r
/// Number of received packets.\r
///\r
- UINT32 ResponseCount;\r
+ UINT32 ResponseCount;\r
///\r
/// The pointer to the allocated list of received packets.\r
///\r
- EFI_DHCP4_PACKET *ResponseList;\r
+ EFI_DHCP4_PACKET *ResponseList;\r
} EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN;\r
\r
-\r
/**\r
Returns the current operating mode and cached data packet for the EFI DHCPv4 Protocol driver.\r
\r
IN EFI_DHCP4_CONFIG_DATA *Dhcp4CfgData OPTIONAL\r
);\r
\r
-\r
/**\r
Starts the DHCP configuration process.\r
\r
OUT EFI_DHCP4_PACKET **NewPacket\r
);\r
\r
-\r
/**\r
Transmits a DHCP formatted packet and optionally waits for responses.\r
\r
IN EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN *Token\r
);\r
\r
-\r
/**\r
Parses the packed DHCP option data.\r
\r
/// and to provide DHCPv4 server and PXE boot server discovery services.\r
///\r
struct _EFI_DHCP4_PROTOCOL {\r
- EFI_DHCP4_GET_MODE_DATA GetModeData;\r
- EFI_DHCP4_CONFIGURE Configure;\r
- EFI_DHCP4_START Start;\r
- EFI_DHCP4_RENEW_REBIND RenewRebind;\r
- EFI_DHCP4_RELEASE Release;\r
- EFI_DHCP4_STOP Stop;\r
- EFI_DHCP4_BUILD Build;\r
- EFI_DHCP4_TRANSMIT_RECEIVE TransmitReceive;\r
- EFI_DHCP4_PARSE Parse;\r
+ EFI_DHCP4_GET_MODE_DATA GetModeData;\r
+ EFI_DHCP4_CONFIGURE Configure;\r
+ EFI_DHCP4_START Start;\r
+ EFI_DHCP4_RENEW_REBIND RenewRebind;\r
+ EFI_DHCP4_RELEASE Release;\r
+ EFI_DHCP4_STOP Stop;\r
+ EFI_DHCP4_BUILD Build;\r
+ EFI_DHCP4_TRANSMIT_RECEIVE TransmitReceive;\r
+ EFI_DHCP4_PARSE Parse;\r
};\r
\r
-extern EFI_GUID gEfiDhcp4ProtocolGuid;\r
-extern EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid;\r
+extern EFI_GUID gEfiDhcp4ProtocolGuid;\r
+extern EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid;\r
\r
#endif\r