summaryrefslogtreecommitdiffstats
path: root/EdkCompatibilityPkg/Foundation/Library/Smm/SmmScriptLib/SmmScriptLib.h
diff options
context:
space:
mode:
Diffstat (limited to 'EdkCompatibilityPkg/Foundation/Library/Smm/SmmScriptLib/SmmScriptLib.h')
-rw-r--r--EdkCompatibilityPkg/Foundation/Library/Smm/SmmScriptLib/SmmScriptLib.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Foundation/Library/Smm/SmmScriptLib/SmmScriptLib.h b/EdkCompatibilityPkg/Foundation/Library/Smm/SmmScriptLib/SmmScriptLib.h
new file mode 100644
index 0000000000..0a50afe9fc
--- /dev/null
+++ b/EdkCompatibilityPkg/Foundation/Library/Smm/SmmScriptLib/SmmScriptLib.h
@@ -0,0 +1,119 @@
+/** @file
+ This is an thunk implementation of the BootScript at run time.
+
+ SmmScriptLib in Framework implementation is to save S3 Boot Script in SMM runtime.
+ Here is the header file to define the API in this thunk library.
+
+ Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+
+ 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.
+
+**/
+
+#ifndef _SMM_SCRIPT_SAVE_H_
+#define _SMM_SCRIPT_SAVE_H_
+
+#include "Tiano.h"
+#include "EfiBootScript.h"
+#include "PiSmmDefinition.h"
+#include "PiSmmS3SaveState.h"
+
+
+typedef EFI_PHYSICAL_ADDRESS EFI_SMM_SCRIPT_TABLE;
+/**
+ Intialize Boot Script table.
+
+ This function should be called in SMM mode. The Thunk implementation is try to
+ locate SmmSaveState protocol.
+
+ @param SystemTable Pointer to the EFI sytem table
+ @param SmmScriptTablePages The expected ScriptTable page number
+ @param SmmScriptTableBase The returned ScriptTable base address
+
+ @retval EFI_OUT_OF_RESOURCES No resource to do the initialization.
+ @retval EFI_SUCCESS Function has completed successfully.
+
+**/
+EFI_STATUS
+EFIAPI
+InitializeSmmScriptLib (
+ IN EFI_SYSTEM_TABLE *SystemTable,
+ IN UINTN SmmScriptTablePages,
+ OUT EFI_PHYSICAL_ADDRESS *SmmScriptTableBase
+ );
+/**
+ Create Boot Script table.
+
+ It will be ignore and just return EFI_SUCCESS since the boot script table is
+ maintained by DxeBootScriptLib. Create Table is not needed.
+
+ @param ScriptTable Pointer to the boot script table to create.
+ @param Type The type of table to creat.
+
+
+ @retval EFI_SUCCESS Function has completed successfully.
+
+**/
+EFI_STATUS
+EFIAPI
+SmmBootScriptCreateTable (
+ IN OUT EFI_SMM_SCRIPT_TABLE *ScriptTable,
+ IN UINTN Type
+ );
+/**
+ Adds a record into a specified Framework boot script table.
+
+ This function is used to store a boot script record into a given boot
+ script table in SMM runtime. The parameter is the same with definitionin BootScriptSave Protocol.
+
+ @param ScriptTable Pointer to the script table to write to. In the thunk implementation, this parameter is ignored
+ since the boot script table is maintained by BootScriptLib.
+ @param Type Not used.
+ @param OpCode The operation code (opcode) number.
+ @param ... Argument list that is specific to each opcode.
+
+ @retval EFI_SUCCESS The operation succeeded. A record was added into the
+ specified script table.
+ @retval EFI_INVALID_PARAMETER The parameter is illegal or the given boot script is not supported.
+ If the opcode is unknow or not supported because of the PCD
+ Feature Flags.
+ @retval EFI_OUT_OF_RESOURCES There is insufficient memory to store the boot script.
+**/
+EFI_STATUS
+EFIAPI
+SmmBootScriptWrite (
+ IN OUT EFI_SMM_SCRIPT_TABLE *ScriptTable,
+ IN UINTN Type,
+ IN UINT16 OpCode,
+ ...
+ );
+/**
+ Close Boot Script table.
+
+ It will be ignore and just return EFI_SUCCESS since the boot script table
+ is maintained by DxeBootScriptLib.
+
+ @param ScriptTableBase Pointer to the boot script table to create.
+ @param ScriptTablePtr Pointer to the script table to write to.
+ @param Type The type of table to creat.
+
+ @retval EFI_SUCCESS - Function has completed successfully.
+
+**/
+EFI_STATUS
+EFIAPI
+SmmBootScriptCloseTable (
+ IN EFI_SMM_SCRIPT_TABLE ScriptTableBase,
+ IN EFI_SMM_SCRIPT_TABLE ScriptTablePtr,
+ IN UINTN Type
+ );
+
+
+#endif