+++ /dev/null
-/** @file\r
- Boot Script Helper SMM driver.\r
-\r
- This driver is responsible to store BootScriptThunk from ReservedMemory to SMRAM for security consideration.\r
-\r
-Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
-\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions\r
-of the BSD License which accompanies this distribution. The\r
-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
-**/\r
-\r
-#include <PiDxe.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/LockBoxLib.h>\r
-\r
-#include <Guid/BootScriptThunkData.h>\r
-\r
-EFI_GUID mBootScriptThunkGuid = {\r
- 0xa053f561, 0xf56b, 0x4140, {0x89, 0x1, 0xb4, 0xcb, 0x5d, 0x70, 0x92, 0x9e}\r
-};\r
-\r
-/**\r
- Entry point function of the Boot Script Thunk Helper SMM driver.\r
-\r
- @param[in] ImageHandle The firmware allocated handle for the EFI image. \r
- @param[in] SystemTable A pointer to the EFI System Table.\r
- \r
- @retval EFI_SUCCESS The entry point is executed successfully.\r
- @retval other Some error occurs when executing this entry point.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-BootScriptThunkHelperMain (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-{\r
- BOOT_SCRIPT_THUNK_DATA *BootScriptThunkData;\r
- EFI_STATUS Status;\r
-\r
- //\r
- // Get BootScriptThunk variable\r
- //\r
- BootScriptThunkData = (BOOT_SCRIPT_THUNK_DATA *)(UINTN)PcdGet64(BootScriptThunkDataPtr);\r
- ASSERT (BootScriptThunkData != NULL);\r
- if (BootScriptThunkData == NULL) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- //\r
- // Save BootScriptThunk image\r
- //\r
- Status = SaveLockBox (\r
- &mBootScriptThunkGuid,\r
- (VOID *)(UINTN)BootScriptThunkData->BootScriptThunkBase,\r
- (UINTN)BootScriptThunkData->BootScriptThunkLength\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- Status = SetLockBoxAttributes (&mBootScriptThunkGuid, LOCK_BOX_ATTRIBUTE_RESTORE_IN_PLACE);\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- return Status;\r
-}\r