From e8326a006ac55997001e46a73f3aa14bf4c4a999 Mon Sep 17 00:00:00 2001 From: Mars Lin Date: Thu, 5 Sep 2013 06:12:04 +0000 Subject: This patch uses dummy routine as NotifyFunction to make sure those 2 APIs provided from library can create event as expected when the caller does not feed in a NotifyFunction. Also, typo is corrected. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Mars Lin Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14631 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/UefiLib/UefiNotTiano.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c b/MdePkg/Library/UefiLib/UefiNotTiano.c index 1869c066c7..9b95be65fd 100644 --- a/MdePkg/Library/UefiLib/UefiNotTiano.c +++ b/MdePkg/Library/UefiLib/UefiNotTiano.c @@ -34,7 +34,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ VOID EFIAPI -InternalEmptyFuntion ( +InternalEmptyFunction ( IN EFI_EVENT Event, IN VOID *Context ) @@ -67,7 +67,7 @@ EfiCreateEventLegacyBoot ( { return EfiCreateEventLegacyBootEx ( TPL_CALLBACK, - InternalEmptyFuntion, + InternalEmptyFunction, NULL, LegacyBootEvent ); @@ -101,7 +101,8 @@ EfiCreateEventLegacyBootEx ( OUT EFI_EVENT *LegacyBootEvent ) { - EFI_STATUS Status; + EFI_STATUS Status; + EFI_EVENT_NOTIFY WorkerNotifyFunction; ASSERT (LegacyBootEvent != NULL); @@ -114,10 +115,19 @@ EfiCreateEventLegacyBootEx ( // // For UEFI 2.0 and the future use an Event Group // + if (NotifyFunction == NULL) { + // + // CreateEventEx will check NotifyFunction is NULL or not and return error. + // Use dummy routine for the case NotifyFunction is NULL. + // + WorkerNotifyFunction = InternalEmptyFunction; + } else { + WorkerNotifyFunction = NotifyFunction; + } Status = gBS->CreateEventEx ( EVT_NOTIFY_SIGNAL, NotifyTpl, - NotifyFunction, + WorkerNotifyFunction, NotifyContext, &gEfiEventLegacyBootGuid, LegacyBootEvent @@ -152,7 +162,7 @@ EfiCreateEventReadyToBoot ( { return EfiCreateEventReadyToBootEx ( TPL_CALLBACK, - InternalEmptyFuntion, + InternalEmptyFunction, NULL, ReadyToBootEvent ); @@ -186,7 +196,8 @@ EfiCreateEventReadyToBootEx ( OUT EFI_EVENT *ReadyToBootEvent ) { - EFI_STATUS Status; + EFI_STATUS Status; + EFI_EVENT_NOTIFY WorkerNotifyFunction; ASSERT (ReadyToBootEvent != NULL); @@ -199,10 +210,19 @@ EfiCreateEventReadyToBootEx ( // // For UEFI 2.0 and the future use an Event Group // + if (NotifyFunction == NULL) { + // + // CreateEventEx will check NotifyFunction is NULL or not and return error. + // Use dummy routine for the case NotifyFunction is NULL. + // + WorkerNotifyFunction = InternalEmptyFunction; + } else { + WorkerNotifyFunction = NotifyFunction; + } Status = gBS->CreateEventEx ( EVT_NOTIFY_SIGNAL, NotifyTpl, - NotifyFunction, + WorkerNotifyFunction, NotifyContext, &gEfiEventReadyToBootGuid, ReadyToBootEvent -- cgit v1.2.3