X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FSmmServicesTableLib%2FSmmServicesTableLib.c;h=d95e9d473790684dd8ac77826a9e35103ff014eb;hb=9344f0921518309295da89c221d10cbead8531aa;hp=55621b93855f41d2216e3e3faa25e36dfd78c23f;hpb=19388d2960b2fe0347da23799e93ccc52f540214;p=mirror_edk2.git diff --git a/MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.c b/MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.c index 55621b9385..d95e9d4737 100644 --- a/MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.c +++ b/MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.c @@ -1,14 +1,8 @@ /** @file SMM Services Table Library. - Copyright (c) 2009 - 2010, 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 - - 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) 2009 - 2018, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -18,7 +12,6 @@ #include EFI_SMM_SYSTEM_TABLE2 *gSmst = NULL; -EFI_SMM_BASE2_PROTOCOL *mInternalSmmBase2 = NULL; /** The constructor function caches the pointer of SMM Services Table. @@ -36,49 +29,41 @@ SmmServicesTableLibConstructor ( IN EFI_SYSTEM_TABLE *SystemTable ) { - EFI_STATUS Status; + EFI_STATUS Status; + EFI_SMM_BASE2_PROTOCOL *InternalSmmBase2; + InternalSmmBase2 = NULL; // // Retrieve SMM Base2 Protocol, Do not use gBS from UefiBootServicesTableLib on purpose - // to prevent inclusion of gBS, gST, and gImageHandle from SMM Drivers unless the - // SMM driver explicity declares that dependency. + // to prevent inclusion of gBS, gST, and gImageHandle from SMM Drivers unless the + // SMM driver explicity declares that dependency. // Status = SystemTable->BootServices->LocateProtocol ( &gEfiSmmBase2ProtocolGuid, NULL, - (VOID **)&mInternalSmmBase2 + (VOID **)&InternalSmmBase2 ); ASSERT_EFI_ERROR (Status); - ASSERT (mInternalSmmBase2 != NULL); - - // - // Check to see if we are already in SMM - // - if (!InSmm ()) { - // - // We are not in SMM, so SMST is not needed - // - return EFI_SUCCESS; - } + ASSERT (InternalSmmBase2 != NULL); // // We are in SMM, retrieve the pointer to SMM System Table // - mInternalSmmBase2->GetSmstLocation (mInternalSmmBase2, &gSmst); + InternalSmmBase2->GetSmstLocation (InternalSmmBase2, &gSmst); ASSERT (gSmst != NULL); return EFI_SUCCESS; } /** - This function allows the caller to determine if the driver is executing in + This function allows the caller to determine if the driver is executing in System Management Mode(SMM). - This function returns TRUE if the driver is executing in SMM and FALSE if the + This function returns TRUE if the driver is executing in SMM and FALSE if the driver is not executing in SMM. @retval TRUE The driver is executing in System Management Mode (SMM). - @retval FALSE The driver is not executing in System Management Mode (SMM). + @retval FALSE The driver is not executing in System Management Mode (SMM). **/ BOOLEAN @@ -87,11 +72,8 @@ InSmm ( VOID ) { - BOOLEAN InSmm; - // - // Check to see if we are already in SMM + // We are already in SMM // - mInternalSmmBase2->InSmm (mInternalSmmBase2, &InSmm); - return InSmm; + return TRUE; }