-/** @file
-
-Copyright (c) 2004 - 2007, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
- PxeDhcp4.h
-
-Abstract:
- Common header for PxeDhcp4 protocol driver
-
-
-**/
-#ifndef _PXEDHCP4_H
-#define _PXEDHCP4_H
-
-\r
-#include <PiDxe.h>\r
+/** @file\r
+\r
+Copyright (c) 2004 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+ PxeDhcp4.h\r
+\r
+Abstract:\r
+ Common header for PxeDhcp4 protocol driver\r
+\r
+\r
+**/\r
+#ifndef _PXEDHCP4_H\r
+#define _PXEDHCP4_H\r
+\r
+\r
+#include <Uefi.h>\r
\r
#include <Protocol/PxeBaseCode.h>\r
-#include <Protocol/SimpleNetwork.h>
-#include <Protocol/PxeDhcp4.h>
-#include <Protocol/PxeDhcp4Callback.h>\r
+#include <Protocol/SimpleNetwork.h>\r
+#include <Protocol/PxeDhcp4.h>\r
+#include <Protocol/PxeDhcp4CallBack.h>\r
\r
#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>
+#include <Library/BaseMemoryLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiDriverEntryPoint.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-//
-// PxeDhcp4 protocol instance data
-//
-typedef struct {
- //
- // Signature field used to locate beginning of containment record.
- //
- UINTN Signature;
-
-#define PXE_DHCP4_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('p', 'x', 'D', '4')
- //
- // Device handle the protocol is bound to.
- //
- EFI_HANDLE Handle;
-
- //
- // Public PxeDhcp4 protocol interface.
- //
- EFI_PXE_DHCP4_PROTOCOL PxeDhcp4;
-
- //
- // Consumed PxeBc, Snp and PxeDhcp4Callback protocol interfaces.
- //
- EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
- EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
- EFI_PXE_DHCP4_CALLBACK_PROTOCOL *callback;
-
- //
- // PxeDhcp4 called function for PxeDhcp4Callback.
- //
- EFI_PXE_DHCP4_FUNCTION function;
-
- //
- // Timeout event and flag for PxeDhcp4Callback.
- //
- EFI_EVENT TimeoutEvent;
- BOOLEAN TimeoutOccurred;
-
- //
- // Periodic event and flag for PxeDhcp4Callback.
- //
- EFI_EVENT PeriodicEvent;
- BOOLEAN PeriodicOccurred;
-
- //
- // DHCP server IP address.
- //
- UINT32 ServerIp;
-
- //
- // DHCP renewal and rebinding times, in seconds.
- //
- UINT32 RenewTime;
- UINT32 RebindTime;
- UINT32 LeaseTime;
-
- //
- // Number of offers received & allocated offer list.
- //
- UINTN offers;
- DHCP4_PACKET *offer_list;
-
- //
- //
- //
- BOOLEAN StopPxeBc;
-
-} PXE_DHCP4_PRIVATE_DATA;
-
-#define PXE_DHCP4_PRIVATE_DATA_FROM_THIS(a) CR (a, PXE_DHCP4_PRIVATE_DATA, PxeDhcp4, PXE_DHCP4_PRIVATE_DATA_SIGNATURE)
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-//
-// Protocol function prototypes.
-//
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Run (
- IN EFI_PXE_DHCP4_PROTOCOL *This,
- IN OPTIONAL UINTN OpLen,
- IN OPTIONAL VOID *OpList
- )
-;
-
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Setup (
- IN EFI_PXE_DHCP4_PROTOCOL *This,
- IN EFI_PXE_DHCP4_DATA *Data
- )
-;
-
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Init (
- IN EFI_PXE_DHCP4_PROTOCOL *This,
- IN UINTN seconds_timeout,
- OUT UINTN *offer_list_entries,
- OUT DHCP4_PACKET **offer_list
- )
-;
-
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Select (
- IN EFI_PXE_DHCP4_PROTOCOL *This,
- IN UINTN seconds_timeout,
- IN DHCP4_PACKET *offer_list
- )
-;
-
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Renew (
- IN EFI_PXE_DHCP4_PROTOCOL *This,
- UINTN seconds_timeout
- )
-;
-
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Rebind (
- IN EFI_PXE_DHCP4_PROTOCOL *This,
- UINTN seconds_timeout
- )
-;
-
-extern
-EFI_STATUS
-EFIAPI
-PxeDhcp4Release (
- IN EFI_PXE_DHCP4_PROTOCOL *This
- )
-;
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-//
-// Support function prototypes.
-//
-extern
-UINT16
-htons (
- UINTN n
- )
-;
-
-extern
-UINT32
-htonl (
- UINTN n
- )
-;
-
-extern
-VOID
-EFIAPI
-timeout_notify (
- IN EFI_EVENT Event,
- IN VOID *Context
- )
-;
-
-extern
-VOID
-EFIAPI
-periodic_notify (
- IN EFI_EVENT Event,
- IN VOID *Context
- )
-;
-
-extern
-EFI_STATUS
-find_opt (
- IN DHCP4_PACKET *Packet,
- IN UINT8 OpCode,
- IN UINTN Skip,
- OUT DHCP4_OP **OpPtr
- )
-;
-
-extern
-EFI_STATUS
-add_opt (
- IN DHCP4_PACKET *Packet,
- IN DHCP4_OP *OpPtr
- )
-;
-
-extern
-EFI_STATUS
-start_udp (
- IN PXE_DHCP4_PRIVATE_DATA *Private,
- IN OPTIONAL EFI_IP_ADDRESS *station_ip,
- IN OPTIONAL EFI_IP_ADDRESS *subnet_mask
- )
-;
-
-extern
-VOID
-stop_udp (
- IN PXE_DHCP4_PRIVATE_DATA *Private
- )
-;
-
-extern
-EFI_STATUS
-start_receive_events (
- IN PXE_DHCP4_PRIVATE_DATA *Private,
- IN UINTN seconds_timeout
- )
-;
-
-extern
-VOID
-stop_receive_events (
- IN PXE_DHCP4_PRIVATE_DATA *Private
- )
-;
-
-extern
-EFI_STATUS
-tx_udp (
- IN PXE_DHCP4_PRIVATE_DATA *Private,
- IN EFI_IP_ADDRESS *dest_ip,
- IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,
- IN EFI_IP_ADDRESS *src_ip,
- IN VOID *buffer,
- IN UINTN BufferSize
- )
-;
-
-extern
-EFI_STATUS
-rx_udp (
- IN PXE_DHCP4_PRIVATE_DATA *Private,
- OUT VOID *buffer,
- OUT UINTN *BufferSize,
- IN OUT EFI_IP_ADDRESS *dest_ip,
- IN OUT EFI_IP_ADDRESS *src_ip,
- IN UINT16 op_flags
- )
-;
-
-extern
-EFI_STATUS
-tx_rx_udp (
- IN PXE_DHCP4_PRIVATE_DATA *Private,
- IN OUT EFI_IP_ADDRESS *ServerIp,
- IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,
- IN OPTIONAL EFI_IP_ADDRESS *client_ip,
- IN OPTIONAL EFI_IP_ADDRESS *subnet_mask,
- IN DHCP4_PACKET *tx_pkt,
- OUT DHCP4_PACKET *rx_pkt,
- IN INTN
- (
- *rx_vfy)
- (
- IN PXE_DHCP4_PRIVATE_DATA *Private,
- IN DHCP4_PACKET *tx_pkt,
- IN DHCP4_PACKET *rx_pkt,
- IN UINTN rx_pkt_size
- ),
- IN UINTN seconds_timeout
- )
-;
-
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-
-//
-// Global variable definitions.
-//
-extern EFI_COMPONENT_NAME_PROTOCOL gPxeDhcp4ComponentName;
-
-EFI_STATUS
-EFIAPI
-PxeDhcp4DriverEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-/*++
-
-Routine Description:
- Register Driver Binding protocol for this driver.
-
-Arguments:
- (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
-
-Returns:
- EFI_SUCCESS - Driver loaded.
- other - Driver not loaded.
-
---*/
-;
-
-#ifdef EFI_SIZE_REDUCTION_APPLIED
- #define COMPONENT_NAME_CODE(code)
- #define COMPONENT_NAME NULL
-#else
- #define COMPONENT_NAME_CODE(code) code
- #define COMPONENT_NAME &gPxeDhcp4ComponentName
-#endif
-
-#endif /* _PXEDHCP4_H */
-
-/* EOF - PxeDhcp4.h */
+#include <Library/UefiLib.h>\r
+\r
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+\r
+//\r
+// PxeDhcp4 protocol instance data\r
+//\r
+typedef struct {\r
+ //\r
+ // Signature field used to locate beginning of containment record.\r
+ //\r
+ UINTN Signature;\r
+\r
+#define PXE_DHCP4_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('p', 'x', 'D', '4')\r
+ //\r
+ // Device handle the protocol is bound to.\r
+ //\r
+ EFI_HANDLE Handle;\r
+\r
+ //\r
+ // Public PxeDhcp4 protocol interface.\r
+ //\r
+ EFI_PXE_DHCP4_PROTOCOL PxeDhcp4;\r
+\r
+ //\r
+ // Consumed PxeBc, Snp and PxeDhcp4Callback protocol interfaces.\r
+ //\r
+ EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;\r
+ EFI_SIMPLE_NETWORK_PROTOCOL *Snp;\r
+ EFI_PXE_DHCP4_CALLBACK_PROTOCOL *callback;\r
+\r
+ //\r
+ // PxeDhcp4 called function for PxeDhcp4Callback.\r
+ //\r
+ EFI_PXE_DHCP4_FUNCTION function;\r
+\r
+ //\r
+ // Timeout event and flag for PxeDhcp4Callback.\r
+ //\r
+ EFI_EVENT TimeoutEvent;\r
+ BOOLEAN TimeoutOccurred;\r
+\r
+ //\r
+ // Periodic event and flag for PxeDhcp4Callback.\r
+ //\r
+ EFI_EVENT PeriodicEvent;\r
+ BOOLEAN PeriodicOccurred;\r
+\r
+ //\r
+ // DHCP server IP address.\r
+ //\r
+ UINT32 ServerIp;\r
+\r
+ //\r
+ // DHCP renewal and rebinding times, in seconds.\r
+ //\r
+ UINT32 RenewTime;\r
+ UINT32 RebindTime;\r
+ UINT32 LeaseTime;\r
+\r
+ //\r
+ // Number of offers received & allocated offer list.\r
+ //\r
+ UINTN offers;\r
+ DHCP4_PACKET *offer_list;\r
+\r
+ //\r
+ //\r
+ //\r
+ BOOLEAN StopPxeBc;\r
+\r
+} PXE_DHCP4_PRIVATE_DATA;\r
+\r
+#define PXE_DHCP4_PRIVATE_DATA_FROM_THIS(a) CR (a, PXE_DHCP4_PRIVATE_DATA, PxeDhcp4, PXE_DHCP4_PRIVATE_DATA_SIGNATURE)\r
+\r
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+\r
+//\r
+// Protocol function prototypes.\r
+//\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Run (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This,\r
+ IN OPTIONAL UINTN OpLen,\r
+ IN OPTIONAL VOID *OpList\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Setup (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This,\r
+ IN EFI_PXE_DHCP4_DATA *Data\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Init (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This,\r
+ IN UINTN seconds_timeout,\r
+ OUT UINTN *offer_list_entries,\r
+ OUT DHCP4_PACKET **offer_list\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Select (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This,\r
+ IN UINTN seconds_timeout,\r
+ IN DHCP4_PACKET *offer_list\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Renew (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This,\r
+ UINTN seconds_timeout\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Rebind (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This,\r
+ UINTN seconds_timeout\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+EFIAPI\r
+PxeDhcp4Release (\r
+ IN EFI_PXE_DHCP4_PROTOCOL *This\r
+ );\r
+\r
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+\r
+//\r
+// Support function prototypes.\r
+//\r
+extern\r
+UINT16 \r
+htons (\r
+ UINTN n\r
+ );\r
+\r
+extern\r
+UINT32 \r
+htonl (\r
+ UINTN n\r
+ );\r
+\r
+extern\r
+VOID \r
+EFIAPI\r
+timeout_notify (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+extern\r
+VOID \r
+EFIAPI\r
+periodic_notify (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+find_opt (\r
+ IN DHCP4_PACKET *Packet,\r
+ IN UINT8 OpCode,\r
+ IN UINTN Skip,\r
+ OUT DHCP4_OP **OpPtr\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+add_opt (\r
+ IN DHCP4_PACKET *Packet,\r
+ IN DHCP4_OP *OpPtr\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+start_udp (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private,\r
+ IN OPTIONAL EFI_IP_ADDRESS *station_ip,\r
+ IN OPTIONAL EFI_IP_ADDRESS *subnet_mask\r
+ );\r
+\r
+extern\r
+VOID \r
+stop_udp (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+start_receive_events (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private,\r
+ IN UINTN seconds_timeout\r
+ );\r
+\r
+extern\r
+VOID \r
+stop_receive_events (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+tx_udp (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private,\r
+ IN EFI_IP_ADDRESS *dest_ip,\r
+ IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,\r
+ IN EFI_IP_ADDRESS *src_ip,\r
+ IN VOID *buffer,\r
+ IN UINTN BufferSize\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+rx_udp (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private,\r
+ OUT VOID *buffer,\r
+ OUT UINTN *BufferSize,\r
+ IN OUT EFI_IP_ADDRESS *dest_ip,\r
+ IN OUT EFI_IP_ADDRESS *src_ip,\r
+ IN UINT16 op_flags\r
+ );\r
+\r
+extern\r
+EFI_STATUS \r
+tx_rx_udp (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private,\r
+ IN OUT EFI_IP_ADDRESS *ServerIp,\r
+ IN OPTIONAL EFI_IP_ADDRESS *gateway_ip,\r
+ IN OPTIONAL EFI_IP_ADDRESS *client_ip,\r
+ IN OPTIONAL EFI_IP_ADDRESS *subnet_mask,\r
+ IN DHCP4_PACKET *tx_pkt,\r
+ OUT DHCP4_PACKET *rx_pkt,\r
+ IN INTN\r
+ (\r
+ *rx_vfy)\r
+ (\r
+ IN PXE_DHCP4_PRIVATE_DATA *Private,\r
+ IN DHCP4_PACKET *tx_pkt,\r
+ IN DHCP4_PACKET *rx_pkt,\r
+ IN UINTN rx_pkt_size\r
+ ),\r
+ IN UINTN seconds_timeout\r
+ );\r
+\r
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+\r
+//\r
+// Global variable definitions.\r
+//\r
+extern EFI_COMPONENT_NAME_PROTOCOL gPxeDhcp4ComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gPxeDhcp4ComponentName2;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+PxeDhcp4DriverEntryPoint (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ Register Driver Binding protocol for this driver.\r
+\r
+Arguments:\r
+ (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)\r
+\r
+Returns:\r
+ EFI_SUCCESS - Driver loaded.\r
+ other - Driver not loaded.\r
+\r
+--*/\r
+;\r
+\r
+#endif /* _PXEDHCP4_H */\r
+\r
+/* EOF - PxeDhcp4.h */\r