summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg/Bds/Bds.c
diff options
context:
space:
mode:
authorOlivier Martin <olivier.martin@arm.com>2014-08-01 18:35:29 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2014-08-01 18:35:29 +0000
commitae19003981f8d9c11a14a48f4f0e511eab5bb995 (patch)
tree8dd88cb4b648d66c213abbca3bf8e26053936e2b /ArmPlatformPkg/Bds/Bds.c
parent90152e593bf0f77c6cd01e08118e3c74dd8ee508 (diff)
downloadedk2-platforms-ae19003981f8d9c11a14a48f4f0e511eab5bb995.tar.xz
ArmPlatformPkg/Bds: Signal EndOfDxe PI Event
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15739 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/Bds/Bds.c')
-rw-r--r--ArmPlatformPkg/Bds/Bds.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/ArmPlatformPkg/Bds/Bds.c b/ArmPlatformPkg/Bds/Bds.c
index e2f97307f6..b84faf91b6 100644
--- a/ArmPlatformPkg/Bds/Bds.c
+++ b/ArmPlatformPkg/Bds/Bds.c
@@ -19,6 +19,8 @@
#include <Protocol/Bds.h>
+#include <Guid/EventGroup.h>
+
#define EFI_SET_TIMER_TO_SECOND 10000000
STATIC
@@ -418,6 +420,25 @@ StartDefaultBootOnTimeout (
}
/**
+ An empty function to pass error checking of CreateEventEx ().
+
+ @param Event Event whose notification function is being invoked.
+ @param Context Pointer to the notification function's context,
+ which is implementation-dependent.
+
+**/
+STATIC
+VOID
+EFIAPI
+EmptyCallbackFunction (
+ IN EFI_EVENT Event,
+ IN VOID *Context
+ )
+{
+ return;
+}
+
+/**
This function uses policy data from the platform to determine what operating
system or system utility should be loaded and invoked. This function call
also optionally make the use of user input to determine the operating system
@@ -449,6 +470,22 @@ BdsEntry (
UINT16 *BootNext;
UINTN BootNextSize;
CHAR16 BootVariableName[9];
+ EFI_EVENT EndOfDxeEvent;
+
+ //
+ // Signal EndOfDxe PI Event
+ //
+ Status = gBS->CreateEventEx (
+ EVT_NOTIFY_SIGNAL,
+ TPL_NOTIFY,
+ EmptyCallbackFunction,
+ NULL,
+ &gEfiEndOfDxeEventGroupGuid,
+ &EndOfDxeEvent
+ );
+ if (!EFI_ERROR (Status)) {
+ gBS->SignalEvent (EndOfDxeEvent);
+ }
PERF_END (NULL, "DXE", NULL, 0);