/** @file\r
- UEFI Boot Services Table Library.\r
+ This library retrieve the EFI_BOOT_SERVICES pointer from EFI system table in\r
+ library's constructor.\r
\r
- Copyright (c) 2006, 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
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\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
+**/\r
\r
- Module Name: UefiBootServicesTableLib.c\r
+#include <Uefi.h>\r
\r
-**/\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/DebugLib.h>\r
\r
-EFI_HANDLE gImageHandle;\r
-EFI_SYSTEM_TABLE *gST;\r
-EFI_BOOT_SERVICES *gBS;\r
+EFI_HANDLE gImageHandle = NULL;\r
+EFI_SYSTEM_TABLE *gST = NULL;\r
+EFI_BOOT_SERVICES *gBS = NULL;\r
\r
/**\r
+ The constructor function caches the pointer of Boot Services Table.\r
+\r
+ The constructor function caches the pointer of Boot Services Table through System Table.\r
+ It will ASSERT() if the pointer of System Table is NULL.\r
+ It will ASSERT() if the pointer of Boot Services Table is NULL.\r
+ It will always return EFI_SUCCESS.\r
+\r
+ @param ImageHandle The firmware allocated handle for the EFI image.\r
+ @param SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
+\r
**/\r
EFI_STATUS\r
+EFIAPI\r
UefiBootServicesTableLibConstructor (\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_SYSTEM_TABLE *SystemTable\r
// Cache the Image Handle\r
//\r
gImageHandle = ImageHandle;\r
+ ASSERT (gImageHandle != NULL);\r
\r
//\r
// Cache pointer to the EFI System Table\r