summaryrefslogtreecommitdiffstats
path: root/NetworkPkg
diff options
context:
space:
mode:
authorJiaxin Wu <jiaxin.wu@intel.com>2017-02-14 16:36:36 +0800
committerJiaxin Wu <jiaxin.wu@intel.com>2017-02-15 14:36:52 +0800
commit5e9e151c2061cc10e5aa9f41c6f1d7d1b865954e (patch)
tree99ffa48e2992f57f342bcdbb71c4cded7780ccf6 /NetworkPkg
parent483ee515205504f8c964c51621b01d611e8828e5 (diff)
downloadedk2-5e9e151c2061cc10e5aa9f41c6f1d7d1b865954e.tar.gz
edk2-5e9e151c2061cc10e5aa9f41c6f1d7d1b865954e.tar.bz2
edk2-5e9e151c2061cc10e5aa9f41c6f1d7d1b865954e.zip
NetworkPkg/HttpBootDxe: Request HTTP token notify as a DPC at TPL_CALLBACK
This patch is to update the HTTP token notify as a DPC at TPL_CALLBACK to align with UEFI Spec. Cc: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com> Cc: Ye Ting <ting.ye@intel.com> Cc: Fu Siyuan <siyuan.fu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com> Reviewed-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Sriram Subramanian <sriram-s@hpe.com> Reviewed-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Diffstat (limited to 'NetworkPkg')
-rw-r--r--NetworkPkg/HttpBootDxe/HttpBootDxe.h3
-rw-r--r--NetworkPkg/HttpBootDxe/HttpBootDxe.inf1
-rw-r--r--NetworkPkg/HttpBootDxe/HttpBootSupport.c37
3 files changed, 38 insertions, 3 deletions
diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.h b/NetworkPkg/HttpBootDxe/HttpBootDxe.h
index 7e8cd9d4f3..28145949fe 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootDxe.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.h
@@ -1,7 +1,7 @@
/** @file
UEFI HTTP boot driver's private data structure and interfaces declaration.
-Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<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.
@@ -36,6 +36,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Library/HttpLib.h>
#include <Library/HiiLib.h>
#include <Library/PrintLib.h>
+#include <Library/DpcLib.h>
//
// UEFI Driver Model Protocols
diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.inf b/NetworkPkg/HttpBootDxe/HttpBootDxe.inf
index 982e6b49be..ec983ba7ad 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.inf
@@ -60,6 +60,7 @@
HttpLib
HiiLib
PrintLib
+ DpcLib
UefiHiiServicesLib
UefiBootManagerLib
diff --git a/NetworkPkg/HttpBootDxe/HttpBootSupport.c b/NetworkPkg/HttpBootDxe/HttpBootSupport.c
index 69b129f9d2..d786d725dc 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootSupport.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootSupport.c
@@ -625,6 +625,39 @@ HttpBootSetHeader (
}
/**
+ Notify the callback function when an event is triggered.
+
+ @param[in] Context The opaque parameter to the function.
+
+**/
+VOID
+HttpIoNotifyDpc (
+ IN VOID *Context
+ )
+{
+ *((BOOLEAN *) Context) = TRUE;
+}
+
+/**
+ Request HttpIoNotifyDpc as a DPC at TPL_CALLBACK.
+
+ @param[in] Event The event signaled.
+ @param[in] Context The opaque parameter to the function.
+
+**/
+VOID
+HttpIoNotify (
+ IN EFI_EVENT Event,
+ IN VOID *Context
+ )
+{
+ //
+ // Request HttpIoNotifyDpc as a DPC at TPL_CALLBACK
+ //
+ QueueDpc (TPL_CALLBACK, HttpIoNotifyDpc, Context);
+}
+
+/**
Create a HTTP_IO to access the HTTP service. It will create and configure
a HTTP child handle.
@@ -730,7 +763,7 @@ HttpIoCreateIo (
Status = gBS->CreateEvent (
EVT_NOTIFY_SIGNAL,
TPL_NOTIFY,
- HttpBootCommonNotify,
+ HttpIoNotify,
&HttpIo->IsTxDone,
&Event
);
@@ -743,7 +776,7 @@ HttpIoCreateIo (
Status = gBS->CreateEvent (
EVT_NOTIFY_SIGNAL,
TPL_NOTIFY,
- HttpBootCommonNotify,
+ HttpIoNotify,
&HttpIo->IsRxDone,
&Event
);