/** @file
-Copyright (c) 2007, Intel Corporation
+Copyright (c) 2007 - 2008, 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
typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA;
-#include <PiDxe.h>\r
-\r
-#include <Guid/SmBios.h>\r
-#include <IndustryStandard/Smbios.h>\r
-#include <Protocol/Dhcp4.h>\r
-#include <Protocol/PxeBaseCode.h>\r
-#include <Protocol/Mtftp4.h>\r
-#include <Protocol/Udp4.h>\r
-#include <Protocol/LoadFile.h>\r
-#include <Protocol/NetworkInterfaceIdentifier.h>\r
-#include <Protocol/PxeBaseCodeCallBack.h>\r
+#include <PiDxe.h>
+
+#include <Guid/SmBios.h>
+#include <IndustryStandard/SmBios.h>
+#include <Protocol/Dhcp4.h>
+#include <Protocol/PxeBaseCode.h>
+#include <Protocol/Mtftp4.h>
+#include <Protocol/Udp4.h>
+#include <Protocol/LoadFile.h>
+#include <Protocol/NetworkInterfaceIdentifier.h>
+#include <Protocol/PxeBaseCodeCallBack.h>
#include <Protocol/Arp.h>
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/BaseLib.h>\r
+#include <Protocol/Ip4.h>
+
+#include <Library/DebugLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/UefiDriverEntryPoint.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
+#include <Library/BaseLib.h>
#include <Library/NetLib.h>
#include "PxeBcDriver.h"
EFI_HANDLE Image;
EFI_HANDLE ArpChild;
EFI_HANDLE Dhcp4Child;
+ EFI_HANDLE Ip4Child;
EFI_HANDLE Mtftp4Child;
- EFI_HANDLE Udp4Child;
+ EFI_HANDLE Udp4ReadChild;
+ EFI_HANDLE Udp4WriteChild;
EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii;
EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *PxeBcCallback;
EFI_ARP_PROTOCOL *Arp;
EFI_DHCP4_PROTOCOL *Dhcp4;
+ EFI_IP4_PROTOCOL *Ip4;
+ EFI_IP4_CONFIG_DATA Ip4ConfigData;
EFI_MTFTP4_PROTOCOL *Mtftp4;
- EFI_UDP4_PROTOCOL *Udp4;
+ EFI_UDP4_PROTOCOL *Udp4Read;
+ EFI_UDP4_PROTOCOL *Udp4Write;
+ UINT16 CurrentUdpSrcPort;
EFI_UDP4_CONFIG_DATA Udp4CfgData;
+
EFI_PXE_BASE_CODE_MODE Mode;
EFI_PXE_BASE_CODE_FUNCTION Function;
UINT8 OptionBuffer[PXEBC_DHCP4_MAX_OPTION_SIZE];
EFI_DHCP4_PACKET SeedPacket;
+ EFI_MAC_ADDRESS Mac;
+ UINT8 MacLen;
BOOLEAN SortOffers;
UINT32 NumOffers;
UINT32 BootpIndex;
UINT32 ProxyIndex[DHCP4_PACKET_TYPE_MAX];
UINT32 BinlIndex[PXEBC_MAX_OFFER_NUM];
+
+ EFI_EVENT GetArpCacheEvent;
+ //\r
+ // token and event used to get ICMP error data from IP\r
+ //\r
+ EFI_IP4_COMPLETION_TOKEN IcmpErrorRcvToken;
};
#define PXEBC_PRIVATE_DATA_FROM_PXEBC(a) CR (a, PXEBC_PRIVATE_DATA, PxeBc, PXEBC_PRIVATE_DATA_SIGNATURE)