X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FDxeServicesTableLib%2FDxeServicesTableLib.c;h=7cb94cee70b05173ddc220ef330f1a78682939ce;hp=40d4f641a4cf449cb80fba15632e872da01df100;hb=2fc59a003ed9104f9feebe0e418f2a04a50f3284;hpb=a42b18207605f9614c19bf4887aa479f38b2ef33
diff --git a/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.c b/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.c
index 40d4f641a4..7cb94cee70 100644
--- a/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.c
+++ b/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.c
@@ -1,38 +1,55 @@
/** @file
- DXE Library.
+ This library implement library class DxeServiceTableLib.
+ It produce EFI_DXE_SERVICE pointer in global variable gDS in library's constructure.
+
+ A DXE driver can use gDS pointer to access services in EFI_DXE_SERVICE, if this
+ DXE driver declare that use DxeServicesTableLib library class and link to this
+ library instance.
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
+ Please attention this library instance can not be used util EFI_SYSTEM_TABLE was
+ initialized.
+
+ This library contains contruct function to retrieve EFI_DXE_SERIVCE, this construct
+ function will be invoked in DXE driver's autogen file.
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php.
- Module Name: DxeServicesTableLib.c
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
+#include
+#include
+#include
+#include
+#include
-
+//
+// Cache copy of the DXE Services Table
+//
EFI_DXE_SERVICES *gDS = NULL;
/**
- The constructor function caches the pointer of System Configuration Table.
-
- The constructor function caches the pointer of System Configuration Table.
+ The constructor function caches the pointer of DXE Services Table.
+
+ The constructor function caches the pointer of DXE Services Table.
It will ASSERT() if that operation fails.
- It will ASSERT() if the pointer of System Configuration Table is NULL.
+ It will ASSERT() if the pointer of DXE Services Table is NULL.
It will always return EFI_SUCCESS.
@param ImageHandle The firmware allocated handle for the EFI image.
@param SystemTable A pointer to the EFI System Table.
-
+
@retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
**/
EFI_STATUS
+EFIAPI
DxeServicesTableLibConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
@@ -40,6 +57,9 @@ DxeServicesTableLibConstructor (
{
EFI_STATUS Status;
+ //
+ // Cache copy of the DXE Services Table
+ //
Status = EfiGetSystemConfigurationTable (&gEfiDxeServicesTableGuid, (VOID **) &gDS);
ASSERT_EFI_ERROR (Status);
ASSERT (gDS != NULL);