/** @file\r
UEFI HTTP boot driver's private data structure and interfaces declaration.\r
\r
-Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
This program and the accompanying materials are licensed and made available under \r
the terms and conditions of the BSD License that accompanies this distribution. \r
#include <Uefi.h>\r
\r
#include <IndustryStandard/Http11.h>\r
+#include <IndustryStandard/Dhcp.h>\r
\r
//\r
// Libraries\r
#include <Library/HttpLib.h>\r
#include <Library/HiiLib.h>\r
#include <Library/PrintLib.h>\r
+#include <Library/DpcLib.h>\r
\r
//\r
// UEFI Driver Model Protocols\r
#include <Protocol/Ip4Config2.h>\r
#include <Protocol/Ip6Config.h>\r
#include <Protocol/RamDisk.h>\r
+#include <Protocol/AdapterInformation.h>\r
+\r
//\r
// Produced Protocols\r
//\r
#include <Protocol/LoadFile.h>\r
+#include <Protocol/HttpBootCallback.h>\r
\r
//\r
// Consumed Guids\r
#define HTTP_BOOT_DXE_VERSION 0xa\r
\r
//\r
-// Provisional Standard Media Types defined in \r
-// http://www.iana.org/assignments/provisional-standard-media-types/provisional-standard-media-types.xhtml\r
+// Standard Media Types defined in \r
+// http://www.iana.org/assignments/media-types\r
//\r
#define HTTP_CONTENT_TYPE_APP_EFI "application/efi"\r
+#define HTTP_CONTENT_TYPE_APP_IMG "application/vnd.efi-img"\r
+#define HTTP_CONTENT_TYPE_APP_ISO "application/vnd.efi-iso"\r
\r
//\r
// Protocol instances\r
CallbackInfo, \\r
HTTP_BOOT_PRIVATE_DATA_SIGNATURE \\r
)\r
+ \r
+#define HTTP_BOOT_PRIVATE_DATA_FROM_CALLBACK_PROTOCOL(CallbackProtocol) \\r
+ CR ( \\r
+ CallbackProtocol, \\r
+ HTTP_BOOT_PRIVATE_DATA, \\r
+ LoadFileCallback, \\r
+ HTTP_BOOT_PRIVATE_DATA_SIGNATURE \\r
+ )\r
\r
struct _HTTP_BOOT_PRIVATE_DATA {\r
UINT32 Signature;\r
EFI_LOAD_FILE_PROTOCOL LoadFile;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
UINT32 Id;\r
+ EFI_HTTP_BOOT_CALLBACK_PROTOCOL *HttpBootCallback;\r
+ EFI_HTTP_BOOT_CALLBACK_PROTOCOL LoadFileCallback;\r
+\r
+ //\r
+ // Data for the default HTTP Boot callback protocol\r
+ //\r
+ UINT64 FileSize;\r
+ UINT64 ReceivedSize;\r
+ UINT32 Percentage;\r
\r
//\r
// HII callback info block\r
EFI_IP_ADDRESS GatewayIp;\r
EFI_IP_ADDRESS ServerIp;\r
UINT16 Port;\r
+ UINT32 DnsServerCount;\r
+ EFI_IP_ADDRESS *DnsServerIp;\r
\r
//\r
// The URI string attempt to download through HTTP, may point to\r