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