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);