+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006, 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
-#ifndef _PXEDHCP4_H\r
-#define _PXEDHCP4_H\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 EFI_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
-\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
-\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
-\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
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4Renew (\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- UINTN seconds_timeout\r
- )\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
-\r
-extern\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4Release (\r
- IN EFI_PXE_DHCP4_PROTOCOL *This\r
- )\r
-;\r
-\r
-//\r
-// Prototypes\r
-// Driver model protocol interface\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4DriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4DriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4DriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- );\r
-\r
-//\r
-// EFI Component Name Functions\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4ComponentNameGetDriverName (\r
- IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
- IN CHAR8 *Language,\r
- OUT CHAR16 **DriverName\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4ComponentNameGetControllerName (\r
- IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN CHAR8 *Language,\r
- OUT CHAR16 **ControllerName\r
- );\r
-\r
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
-\r
-//\r
-// Support function prototypes.\r
-//\r
-extern\r
-UINT16\r
-htons (\r
- UINTN n\r
- )\r
-;\r
-\r
-extern\r
-UINT32\r
-htonl (\r
- UINTN n\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-EFIAPI\r
-timeout_notify (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-;\r
-\r
-extern\r
-VOID\r
-EFIAPI\r
-periodic_notify (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\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
-\r
-extern\r
-EFI_STATUS\r
-add_opt (\r
- IN DHCP4_PACKET *Packet,\r
- IN DHCP4_OP *OpPtr\r
- )\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
-\r
-extern\r
-VOID\r
-stop_udp (\r
- IN PXE_DHCP4_PRIVATE_DATA *Private\r
- )\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
-\r
-extern\r
-VOID\r
-stop_receive_events (\r
- IN PXE_DHCP4_PRIVATE_DATA *Private\r
- )\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
-\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
-\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
-//\r
-// Global variable definitions.\r
-//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gPxeDhcp4DriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gPxeDhcp4ComponentName;\r
-\r
-#endif /* _PXEDHCP4_H */\r
-\r
-/* EOF - PxeDhcp4.h */\r