]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/UefiLib/UefiNotTiano.c
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / UefiLib / UefiNotTiano.c
index a00b3d19feae708933ee4bcaee417cd8267162e6..5e32f4abf4632ba3148349087197b80b538a7f76 100644 (file)
@@ -6,14 +6,8 @@
   (EDK/EFI 1.10) and new (EDK II/UEFI 2.0) way. This module is a DXE driver as\r
   it contains DXE enum extensions for EFI event services.\r
 \r
-Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -21,27 +15,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "UefiLibInternal.h"\r
 \r
-/**\r
-  An empty function to pass error checking of CreateEventEx ().\r
-\r
-  This empty function ensures that EVT_NOTIFY_SIGNAL_ALL is error\r
-  checked correctly since it is now mapped into CreateEventEx() in UEFI 2.0.\r
\r
-  @param  Event                 Event whose notification function is being invoked.\r
-  @param  Context               Pointer to the notification function's context,\r
-                                which is implementation-dependent.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-InternalEmptyFuntion (\r
-  IN EFI_EVENT                Event,\r
-  IN VOID                     *Context\r
-  )\r
-{\r
-  return;\r
-}\r
-\r
 /**\r
   Creates an EFI event in the Legacy Boot Event Group.\r
 \r
@@ -67,7 +40,7 @@ EfiCreateEventLegacyBoot (
 {\r
   return EfiCreateEventLegacyBootEx (\r
            TPL_CALLBACK,\r
-           InternalEmptyFuntion,\r
+           EfiEventEmptyFunction,\r
            NULL,\r
            LegacyBootEvent\r
            );\r
@@ -75,8 +48,8 @@ EfiCreateEventLegacyBoot (
 \r
 /**\r
   Create an EFI event in the Legacy Boot Event Group and allows\r
-  the caller to specify a notification function.  \r
-  \r
+  the caller to specify a notification function.\r
+\r
   This function abstracts the creation of the Legacy Boot Event.\r
   The Framework moved from a proprietary to UEFI 2.0 based mechanism.\r
   This library abstracts the caller from how this event is created to prevent\r
@@ -101,7 +74,8 @@ EfiCreateEventLegacyBootEx (
   OUT EFI_EVENT         *LegacyBootEvent\r
   )\r
 {\r
-  EFI_STATUS    Status;\r
+  EFI_STATUS        Status;\r
+  EFI_EVENT_NOTIFY  WorkerNotifyFunction;\r
 \r
   ASSERT (LegacyBootEvent != NULL);\r
 \r
@@ -114,10 +88,19 @@ EfiCreateEventLegacyBootEx (
     //\r
     // For UEFI 2.0 and the future use an Event Group\r
     //\r
+    if (NotifyFunction == NULL) {\r
+      //\r
+      // CreateEventEx will check NotifyFunction is NULL or not and return error.\r
+      // Use dummy routine for the case NotifyFunction is NULL.\r
+      //\r
+      WorkerNotifyFunction = EfiEventEmptyFunction;\r
+    } else {\r
+      WorkerNotifyFunction = NotifyFunction;\r
+    }\r
     Status = gBS->CreateEventEx (\r
                     EVT_NOTIFY_SIGNAL,\r
                     NotifyTpl,\r
-                    NotifyFunction,\r
+                    WorkerNotifyFunction,\r
                     NotifyContext,\r
                     &gEfiEventLegacyBootGuid,\r
                     LegacyBootEvent\r
@@ -131,14 +114,14 @@ EfiCreateEventLegacyBootEx (
   Create an EFI event in the Ready To Boot Event Group.\r
 \r
   Prior to UEFI 2.0 this was done via a non-standard UEFI extension, and this library\r
-  abstracts the implementation mechanism of this event from the caller.   \r
-  This function abstracts the creation of the Ready to Boot Event.  The Framework \r
-  moved from a proprietary to UEFI 2.0-based mechanism.  This library abstracts \r
-  the caller from how this event is created to prevent the code form having to \r
+  abstracts the implementation mechanism of this event from the caller.\r
+  This function abstracts the creation of the Ready to Boot Event.  The Framework\r
+  moved from a proprietary to UEFI 2.0-based mechanism.  This library abstracts\r
+  the caller from how this event is created to prevent the code form having to\r
   change with the version of the specification supported.\r
   If ReadyToBootEvent is NULL, then ASSERT().\r
 \r
-  @param  ReadyToBootEvent   Returns the EFI event returned from gBS->CreateEvent(Ex).\r
+  @param  ReadyToBootEvent  Returns the EFI event returned from gBS->CreateEvent(Ex).\r
 \r
   @retval EFI_SUCCESS       Event was created.\r
   @retval Other             Event was not created.\r
@@ -152,7 +135,7 @@ EfiCreateEventReadyToBoot (
 {\r
   return EfiCreateEventReadyToBootEx (\r
            TPL_CALLBACK,\r
-           InternalEmptyFuntion,\r
+           EfiEventEmptyFunction,\r
            NULL,\r
            ReadyToBootEvent\r
            );\r
@@ -160,8 +143,8 @@ EfiCreateEventReadyToBoot (
 \r
 /**\r
   Create an EFI event in the Ready To Boot Event Group and allows\r
-  the caller to specify a notification function.  \r
-  \r
+  the caller to specify a notification function.\r
+\r
   This function abstracts the creation of the Ready to Boot Event.\r
   The Framework moved from a proprietary to UEFI 2.0 based mechanism.\r
   This library abstracts the caller from how this event is created to prevent\r
@@ -186,7 +169,8 @@ EfiCreateEventReadyToBootEx (
   OUT EFI_EVENT         *ReadyToBootEvent\r
   )\r
 {\r
-  EFI_STATUS    Status;\r
+  EFI_STATUS        Status;\r
+  EFI_EVENT_NOTIFY  WorkerNotifyFunction;\r
 \r
   ASSERT (ReadyToBootEvent != NULL);\r
 \r
@@ -199,10 +183,19 @@ EfiCreateEventReadyToBootEx (
     //\r
     // For UEFI 2.0 and the future use an Event Group\r
     //\r
+    if (NotifyFunction == NULL) {\r
+      //\r
+      // CreateEventEx will check NotifyFunction is NULL or not and return error.\r
+      // Use dummy routine for the case NotifyFunction is NULL.\r
+      //\r
+      WorkerNotifyFunction = EfiEventEmptyFunction;\r
+    } else {\r
+      WorkerNotifyFunction = NotifyFunction;\r
+    }\r
     Status = gBS->CreateEventEx (\r
                     EVT_NOTIFY_SIGNAL,\r
                     NotifyTpl,\r
-                    NotifyFunction,\r
+                    WorkerNotifyFunction,\r
                     NotifyContext,\r
                     &gEfiEventReadyToBootGuid,\r
                     ReadyToBootEvent\r
@@ -215,7 +208,7 @@ EfiCreateEventReadyToBootEx (
 \r
 /**\r
   Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().\r
-  \r
+\r
   This function abstracts the signaling of the Ready to Boot Event. The Framework moved\r
   from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller\r
   from how this event is created to prevent to code form having to change with the\r
@@ -265,18 +258,18 @@ EfiSignalEventLegacyBoot (
 \r
 \r
 /**\r
-  Check to see if the Firmware Volume (FV) Media Device Path is valid \r
-  \r
-  The Framework FwVol Device Path changed to conform to the UEFI 2.0 specification.  \r
+  Check to see if the Firmware Volume (FV) Media Device Path is valid\r
+\r
+  The Framework FwVol Device Path changed to conform to the UEFI 2.0 specification.\r
   This library function abstracts validating a device path node.\r
-  Check the MEDIA_FW_VOL_FILEPATH_DEVICE_PATH data structure to see if it's valid.  \r
-  If it is valid, then return the GUID file name from the device path node.  Otherwise, \r
-  return NULL.  This device path changed in the DXE CIS version 0.92 in a non back ward \r
-  compatible way to not conflict with the UEFI 2.0 specification.  This function abstracts \r
+  Check the MEDIA_FW_VOL_FILEPATH_DEVICE_PATH data structure to see if it's valid.\r
+  If it is valid, then return the GUID file name from the device path node.  Otherwise,\r
+  return NULL.  This device path changed in the DXE CIS version 0.92 in a non back ward\r
+  compatible way to not conflict with the UEFI 2.0 specification.  This function abstracts\r
   the differences from the caller.\r
   If FvDevicePathNode is NULL, then ASSERT().\r
 \r
-  @param  FvDevicePathNode  Pointer to FV device path to check.\r
+  @param  FvDevicePathNode  The pointer to FV device path to check.\r
 \r
   @retval NULL              FvDevicePathNode is not valid.\r
   @retval Other             FvDevicePathNode is valid and pointer to NameGuid was returned.\r
@@ -301,17 +294,17 @@ EfiGetNameGuidFromFwVolDevicePathNode (
 \r
 /**\r
   Initialize a Firmware Volume (FV) Media Device Path node.\r
-  \r
-  The Framework FwVol Device Path changed to conform to the UEFI 2.0 specification.  \r
-  This library function abstracts initializing a device path node.  \r
-  Initialize the MEDIA_FW_VOL_FILEPATH_DEVICE_PATH data structure.  This device \r
-  path changed in the DXE CIS version 0.92 in a non back ward compatible way to \r
-  not conflict with the UEFI 2.0 specification.  This function abstracts the \r
+\r
+  The Framework FwVol Device Path changed to conform to the UEFI 2.0 specification.\r
+  This library function abstracts initializing a device path node.\r
+  Initialize the MEDIA_FW_VOL_FILEPATH_DEVICE_PATH data structure.  This device\r
+  path changed in the DXE CIS version 0.92 in a non back ward compatible way to\r
+  not conflict with the UEFI 2.0 specification.  This function abstracts the\r
   differences from the caller.\r
   If FvDevicePathNode is NULL, then ASSERT().\r
   If NameGuid is NULL, then ASSERT().\r
-  \r
-  @param  FvDevicePathNode  Pointer to a FV device path node to initialize\r
+\r
+  @param  FvDevicePathNode  The pointer to a FV device path node to initialize\r
   @param  NameGuid          FV file name to use in FvDevicePathNode\r
 \r
 **/\r