--- /dev/null
+/** @file\r
+ UEFI Boot Services Table Library.\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
+\r
+ Module Name: UefiBootServicesTableLib.c\r
+\r
+**/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\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
+ )\r
+{\r
+ //\r
+ // Cache the Image Handle\r
+ //\r
+ gImageHandle = ImageHandle;\r
+ ASSERT (gImageHandle != NULL);\r
+\r
+ //\r
+ // Cache pointer to the EFI System Table\r
+ //\r
+ gST = SystemTable;\r
+ ASSERT (gST != NULL);\r
+\r
+ //\r
+ // Cache pointer to the EFI Boot Services Table\r
+ //\r
+ gBS = SystemTable->BootServices;\r
+ ASSERT (gBS != NULL);\r
+\r
+ return EFI_SUCCESS;\r
+}\r