From 9a462b415d8c9636bfb29a2cfb141e69c3c092b7 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Sun, 4 Jun 2006 13:08:25 +0000 Subject: =?UTF-8?q?UefiLib:=20Add=20two=20new=20interfaces=20of=20EfiCreat?= =?UTF-8?q?eEventLegacyBootEx=20&=E3=80=80EfiCreateEventReadyToBootEx=20Fi?= =?UTF-8?q?x=20a=20bug=20in=20EfiCreateEventLegacyBoot=20&=20EfiCreateEven?= =?UTF-8?q?tReadyToBoot.=20(#51)=20PciLib:=20Add=20missing=20ASSERT()s=20i?= =?UTF-8?q?n=20PciReadBuffer()=20&=20PciWriteBuffer()=20(#70)=20IoLib=20Ad?= =?UTF-8?q?d=20ASSERT()s=20to=20check=20alignment.=20MemoryAllocationLib:?= =?UTF-8?q?=20For=20AllocateXXXCopyBuffer().=20Add=20ASSERT()s=20for=20cas?= =?UTF-8?q?es=20when=20allocations=20fails.=20BaseLib:=20Change=20the=20re?= =?UTF-8?q?turn=20type=20of=20InternalMathModU64x32=20from=20UINT64=20to?= =?UTF-8?q?=20UINT32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@416 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/UefiLib/UefiNotTiano.c | 115 +++++++++++++++++++++++++++++----- 1 file changed, 100 insertions(+), 15 deletions(-) (limited to 'MdePkg/Library/UefiLib') diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c b/MdePkg/Library/UefiLib/UefiNotTiano.c index f883c1d3c6..770d76df7e 100644 --- a/MdePkg/Library/UefiLib/UefiNotTiano.c +++ b/MdePkg/Library/UefiLib/UefiNotTiano.c @@ -16,7 +16,21 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ - +/** + An empty function to pass error checking of CreateEventEx (). + + This empty function enusres that EFI_EVENT_NOTIFY_SIGNAL_ALL is error + checked correctly since it is now mapped into CreateEventEx() in UEFI 2.0. + +**/ +VOID +InternalEmptyFuntion ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + return; +} /** Create a Legacy Boot Event. @@ -39,6 +53,42 @@ EFIAPI EfiCreateEventLegacyBoot ( OUT EFI_EVENT *LegacyBootEvent ) +{ + return EfiCreateEventLegacyBootEx ( + EFI_TPL_CALLBACK, + InternalEmptyFuntion, + NULL, + LegacyBootEvent + ); +} + +/** + Create an EFI event in the Legacy Boot Event Group and allows + the caller to specify a notification function. + + This function abstracts the creation of the Legacy Boot Event. + The Framework moved from a proprietary to UEFI 2.0 based mechanism. + This library abstracts the caller from how this event is created to prevent + to code form having to change with the version of the specification supported. + If LegacyBootEvent is NULL, then ASSERT(). + + @param NotifyTpl The task priority level of the event. + @param NotifyFunction The notification function to call when the event is signaled. + @param NotifyContext The content to pass to NotifyFunction when the event is signaled. + @param LegacyBootEvent Returns the EFI event returned from gBS->CreateEvent(Ex). + + @retval EFI_SUCCESS Event was created. + @retval Other Event was not created. + +**/ +EFI_STATUS +EFIAPI +EfiCreateEventLegacyBootEx ( + IN EFI_TPL NotifyTpl, + IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL + IN VOID *NotifyContext, OPTIONAL + OUT EFI_EVENT *LegacyBootEvent + ) { EFI_STATUS Status; @@ -50,9 +100,9 @@ EfiCreateEventLegacyBoot ( // Status = gBS->CreateEvent ( EFI_EVENT_SIGNAL_LEGACY_BOOT | EFI_EVENT_NOTIFY_SIGNAL_ALL, - EFI_TPL_CALLBACK, - NULL, - NULL, + NotifyTpl, + NotifyFunction, + NotifyContext, LegacyBootEvent ); #else @@ -61,18 +111,17 @@ EfiCreateEventLegacyBoot ( // Status = gBS->CreateEventEx ( EVENT_NOTIFY_SIGNAL, - EFI_TPL_CALLBACK, - NULL, - NULL, + NotifyTpl, + NotifyFunction, + NotifyContext, &gEfiEventLegacyBootGuid, LegacyBootEvent ); #endif + return Status; } - - /** Create a Read to Boot Event. @@ -94,6 +143,42 @@ EFIAPI EfiCreateEventReadyToBoot ( OUT EFI_EVENT *ReadyToBootEvent ) +{ + return EfiCreateEventReadyToBootEx ( + EFI_TPL_CALLBACK, + InternalEmptyFuntion, + NULL, + ReadyToBootEvent + ); +} + +/** + Create an EFI event in the Ready To Boot Event Group and allows + the caller to specify a notification function. + + This function abstracts the creation of the Ready to Boot Event. + The Framework moved from a proprietary to UEFI 2.0 based mechanism. + This library abstracts the caller from how this event is created to prevent + to code form having to change with the version of the specification supported. + If ReadyToBootEvent is NULL, then ASSERT(). + + @param NotifyTpl The task priority level of the event. + @param NotifyFunction The notification function to call when the event is signaled. + @param NotifyContext The content to pass to NotifyFunction when the event is signaled. + @param LegacyBootEvent Returns the EFI event returned from gBS->CreateEvent(Ex). + + @retval EFI_SUCCESS Event was created. + @retval Other Event was not created. + +**/ +EFI_STATUS +EFIAPI +EfiCreateEventReadyToBootEx ( + IN EFI_TPL NotifyTpl, + IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL + IN VOID *NotifyContext, OPTIONAL + OUT EFI_EVENT *ReadyToBootEvent + ) { EFI_STATUS Status; @@ -105,9 +190,9 @@ EfiCreateEventReadyToBoot ( // Status = gBS->CreateEvent ( EFI_EVENT_SIGNAL_READY_TO_BOOT | EFI_EVENT_NOTIFY_SIGNAL_ALL, - EFI_TPL_CALLBACK, - NULL, - NULL, + NotifyTpl, + NotifyFunction, + NotifyContext, ReadyToBootEvent ); #else @@ -116,9 +201,9 @@ EfiCreateEventReadyToBoot ( // Status = gBS->CreateEventEx ( EVENT_NOTIFY_SIGNAL, - EFI_TPL_CALLBACK, - NULL, - NULL, + NotifyTpl, + NotifyFunction, + NotifyContext, &gEfiEventReadyToBootGuid, ReadyToBootEvent ); -- cgit v1.2.3