summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/HttpBootDxe/HttpBootDxe.c
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2016-02-15 13:55:11 +0800
committerFu Siyuan <siyuan.fu@intel.com>2016-03-07 09:12:14 +0800
commitfa848a4048943251fc057fe8d6c5a82e01d2ffb6 (patch)
tree0ffe9aa44385b2bd9e49c974f3ed52345579e61e /NetworkPkg/HttpBootDxe/HttpBootDxe.c
parent9353c60cea6eeedbbe4b336aea02646e2bf25f47 (diff)
downloadedk2-fa848a4048943251fc057fe8d6c5a82e01d2ffb6.tar.gz
edk2-fa848a4048943251fc057fe8d6c5a82e01d2ffb6.tar.bz2
edk2-fa848a4048943251fc057fe8d6c5a82e01d2ffb6.zip
NetworkPkg: Add URI configuration form to HTTP boot driver.
This patch updates the HTTP boot driver to produce a setup page for the boot file URI configuration. A new boot option will be created for the manual configured URI address. This change is made to support the HTTP boot usage in home environment. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com>
Diffstat (limited to 'NetworkPkg/HttpBootDxe/HttpBootDxe.c')
-rw-r--r--NetworkPkg/HttpBootDxe/HttpBootDxe.c44
1 files changed, 36 insertions, 8 deletions
diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.c b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
index 9fb33bbb53..6a3033db11 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
@@ -1,7 +1,7 @@
/** @file
Driver Binding functions implementation for UEFI HTTP boot.
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@@ -365,6 +365,14 @@ HttpBootIp4DxeDriverBindingStart (
}
//
+ // Initialize the HII configuration form.
+ //
+ Status = HttpBootConfigFormInit (Private);
+ if (EFI_ERROR (Status)) {
+ goto ON_ERROR;
+ }
+
+ //
// Install a protocol with Caller Id Guid to the NIC, this is just to build the relationship between
// NIC handle and the private data.
//
@@ -508,8 +516,9 @@ HttpBootIp4DxeDriverBindingStart (
ON_ERROR:
-
+
HttpBootDestroyIp4Children (This, Private);
+ HttpBootConfigFormUnload (Private);
FreePool (Private);
return Status;
@@ -615,6 +624,11 @@ HttpBootIp4DxeDriverBindingStop (
// Release the cached data.
//
HttpBootFreeCacheList (Private);
+
+ //
+ // Unload the config form.
+ //
+ HttpBootConfigFormUnload (Private);
gBS->UninstallProtocolInterface (
NicHandle,
@@ -823,6 +837,14 @@ HttpBootIp6DxeDriverBindingStart (
}
//
+ // Initialize the HII configuration form.
+ //
+ Status = HttpBootConfigFormInit (Private);
+ if (EFI_ERROR (Status)) {
+ goto ON_ERROR;
+ }
+
+ //
// Install a protocol with Caller Id Guid to the NIC, this is just to build the relationship between
// NIC handle and the private data.
//
@@ -989,12 +1011,12 @@ HttpBootIp6DxeDriverBindingStart (
return EFI_SUCCESS;
ON_ERROR:
-
- HttpBootDestroyIp6Children(This, Private);
- FreePool (Private);
- return Status;
-
+ HttpBootDestroyIp6Children(This, Private);
+ HttpBootConfigFormUnload (Private);
+ FreePool (Private);
+
+ return Status;
}
/**
@@ -1096,7 +1118,12 @@ HttpBootIp6DxeDriverBindingStop (
// Release the cached data.
//
HttpBootFreeCacheList (Private);
-
+
+ //
+ // Unload the config form.
+ //
+ HttpBootConfigFormUnload (Private);
+
gBS->UninstallProtocolInterface (
NicHandle,
&gEfiCallerIdGuid,
@@ -1128,6 +1155,7 @@ HttpBootDxeDriverEntryPoint (
)
{
EFI_STATUS Status;
+
//
// Install UEFI Driver Model protocol(s).
//