\r
Copyright (c) 2006 - 2018, 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
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
#include "InternalS3SaveState.h"\r
\r
-EFI_HANDLE mHandle = NULL;\r
-EFI_S3_SAVE_STATE_PROTOCOL mS3SaveState = {\r
+EFI_HANDLE mHandle = NULL;\r
+EFI_S3_SAVE_STATE_PROTOCOL mS3SaveState = {\r
BootScriptWrite,\r
BootScriptInsert,\r
BootScriptLabel,\r
BootScriptCompare\r
- };\r
+};\r
+\r
/**\r
Internal function to add IO write opcode to the table.\r
\r
**/\r
EFI_STATUS\r
BootScriptWriteIoWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINTN Count;\r
- UINT8 *Buffer;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINTN Count;\r
+ UINT8 *Buffer;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Count = VA_ARG (Marker, UINTN);\r
- Buffer = VA_ARG (Marker, UINT8 *);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Count = VA_ARG (Marker, UINTN);\r
+ Buffer = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSaveIoWrite (Width, Address, Count, Buffer);\r
}\r
+\r
/**\r
Internal function to add IO read/write opcode to the table.\r
\r
**/\r
EFI_STATUS\r
BootScriptWriteIoReadWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINT8 *Data;\r
- UINT8 *DataMask;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINT8 *Data;\r
+ UINT8 *DataMask;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, UINT8 *);\r
- DataMask = VA_ARG (Marker, UINT8 *);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, UINT8 *);\r
+ DataMask = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSaveIoReadWrite (Width, Address, Data, DataMask);\r
}\r
**/\r
EFI_STATUS\r
BootScriptWriteMemWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINTN Count;\r
- UINT8 *Buffer;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINTN Count;\r
+ UINT8 *Buffer;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Count = VA_ARG (Marker, UINTN);\r
- Buffer = VA_ARG (Marker, UINT8 *);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Count = VA_ARG (Marker, UINTN);\r
+ Buffer = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSaveMemWrite (Width, Address, Count, Buffer);\r
}\r
**/\r
EFI_STATUS\r
BootScriptWriteMemReadWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINT8 *Data;\r
- UINT8 *DataMask;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINT8 *Data;\r
+ UINT8 *DataMask;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, UINT8 *);\r
- DataMask = VA_ARG (Marker, UINT8 *);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, UINT8 *);\r
+ DataMask = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSaveMemReadWrite (Width, Address, Data, DataMask);\r
}\r
**/\r
EFI_STATUS\r
BootScriptWritePciCfgWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINTN Count;\r
- UINT8 *Buffer;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINTN Count;\r
+ UINT8 *Buffer;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Count = VA_ARG (Marker, UINTN);\r
- Buffer = VA_ARG (Marker, UINT8 *);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Count = VA_ARG (Marker, UINTN);\r
+ Buffer = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSavePciCfgWrite (Width, Address, Count, Buffer);\r
}\r
**/\r
EFI_STATUS\r
BootScriptWritePciCfgReadWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINT8 *Data;\r
- UINT8 *DataMask;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINT8 *Data;\r
+ UINT8 *DataMask;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, UINT8 *);\r
- DataMask = VA_ARG (Marker, UINT8 *);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, UINT8 *);\r
+ DataMask = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSavePciCfgReadWrite (Width, Address, Data, DataMask);\r
}\r
+\r
/**\r
Internal function to add PciCfg2 write opcode to the table.\r
\r
**/\r
EFI_STATUS\r
BootScriptWritePciCfg2Write (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- UINTN Count;\r
- UINT8 *Buffer;\r
- UINT16 Segment;\r
-\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Segment = VA_ARG (Marker, UINT16);\r
- Address = VA_ARG (Marker, UINT64);\r
- Count = VA_ARG (Marker, UINTN);\r
- Buffer = VA_ARG (Marker, UINT8 *);\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ UINTN Count;\r
+ UINT8 *Buffer;\r
+ UINT16 Segment;\r
+\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Segment = VA_ARG (Marker, UINT16);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Count = VA_ARG (Marker, UINTN);\r
+ Buffer = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSavePciCfg2Write (Width, Segment, Address, Count, Buffer);\r
}\r
**/\r
EFI_STATUS\r
BootScriptWritePciCfg2ReadWrite (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT16 Segment;\r
- UINT64 Address;\r
- UINT8 *Data;\r
- UINT8 *DataMask;\r
-\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Segment = VA_ARG (Marker, UINT16);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, UINT8 *);\r
- DataMask = VA_ARG (Marker, UINT8 *);\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT16 Segment;\r
+ UINT64 Address;\r
+ UINT8 *Data;\r
+ UINT8 *DataMask;\r
+\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Segment = VA_ARG (Marker, UINT16);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, UINT8 *);\r
+ DataMask = VA_ARG (Marker, UINT8 *);\r
\r
return S3BootScriptSavePciCfg2ReadWrite (Width, Segment, Address, Data, DataMask);\r
}\r
+\r
/**\r
Internal function to add smbus execute opcode to the table.\r
\r
**/\r
EFI_STATUS\r
BootScriptWriteSmbusExecute (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;\r
EFI_SMBUS_DEVICE_COMMAND Command;\r
EFI_SMBUS_OPERATION Operation;\r
BOOLEAN PecCheck;\r
- VOID *Buffer;\r
- UINTN *DataSize;\r
+ VOID *Buffer;\r
+ UINTN *DataSize;\r
UINTN SmBusAddress;\r
\r
SlaveAddress.SmbusDeviceAddress = VA_ARG (Marker, UINTN);\r
Command = VA_ARG (Marker, EFI_SMBUS_DEVICE_COMMAND);\r
Operation = VA_ARG (Marker, EFI_SMBUS_OPERATION);\r
PecCheck = VA_ARG (Marker, BOOLEAN);\r
- SmBusAddress = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress,Command,0,PecCheck);\r
+ SmBusAddress = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress, Command, 0, PecCheck);\r
DataSize = VA_ARG (Marker, UINTN *);\r
Buffer = VA_ARG (Marker, VOID *);\r
\r
return S3BootScriptSaveSmbusExecute (SmBusAddress, Operation, DataSize, Buffer);\r
}\r
+\r
/**\r
Internal function to add stall opcode to the table.\r
\r
**/\r
EFI_STATUS\r
BootScriptWriteStall (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- UINT32 Duration;\r
+ UINT32 Duration;\r
\r
- Duration = VA_ARG (Marker, UINT32);\r
+ Duration = VA_ARG (Marker, UINT32);\r
\r
return S3BootScriptSaveStall (Duration);\r
}\r
**/\r
EFI_STATUS\r
BootScriptWriteDispatch (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- VOID *EntryPoint;\r
+ VOID *EntryPoint;\r
\r
- EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+ EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
return S3BootScriptSaveDispatch (EntryPoint);\r
}\r
\r
**/\r
EFI_STATUS\r
BootScriptWriteMemPoll (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
VOID *Data;\r
VOID *DataMask;\r
UINT64 Delay;\r
//\r
// If Remainder is not zero, LoopTimes will be rounded up by 1.\r
//\r
- LoopTimes +=1;\r
+ LoopTimes += 1;\r
}\r
- return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);\r
\r
+ return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);\r
}\r
\r
/**\r
**/\r
EFI_STATUS\r
BootScriptWriteDispatch2 (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- VOID *EntryPoint;\r
- VOID *Context;\r
+ VOID *EntryPoint;\r
+ VOID *Context;\r
\r
- EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
- Context = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+ EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+ Context = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
\r
return S3BootScriptSaveDispatch2 (EntryPoint, Context);\r
}\r
+\r
/**\r
Internal function to add INFORAMTION opcode node to the table\r
list.\r
**/\r
EFI_STATUS\r
BootScriptWriteInformation (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
UINT32 InformationLength;\r
EFI_PHYSICAL_ADDRESS Information;\r
\r
InformationLength = VA_ARG (Marker, UINT32);\r
- Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
- return S3BootScriptSaveInformation (InformationLength, (VOID*)(UINTN)Information);\r
+ Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+ return S3BootScriptSaveInformation (InformationLength, (VOID *)(UINTN)Information);\r
}\r
+\r
/**\r
Internal function to add IO poll opcode node to the table\r
@param Marker The variable argument list to get the opcode\r
**/\r
EFI_STATUS\r
BootScriptWriteIoPoll (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- VOID *Data;\r
- VOID *DataMask;\r
- UINT64 Delay;\r
-\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, VOID *);\r
- DataMask = VA_ARG (Marker, VOID *);\r
- Delay = (UINT64)VA_ARG (Marker, UINT64);\r
-\r
- return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ VOID *Data;\r
+ VOID *DataMask;\r
+ UINT64 Delay;\r
+\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, VOID *);\r
+ DataMask = VA_ARG (Marker, VOID *);\r
+ Delay = (UINT64)VA_ARG (Marker, UINT64);\r
+\r
+ return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);\r
}\r
+\r
/**\r
Internal function to add PCI config poll opcode node to the table\r
\r
**/\r
EFI_STATUS\r
BootScriptWritePciConfigPoll (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT64 Address;\r
- VOID *Data;\r
- VOID *DataMask;\r
- UINT64 Delay;\r
-\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT64 Address;\r
+ VOID *Data;\r
+ VOID *DataMask;\r
+ UINT64 Delay;\r
\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, VOID *);\r
- DataMask = VA_ARG (Marker, VOID *);\r
- Delay = (UINT64)VA_ARG (Marker, UINT64);\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, VOID *);\r
+ DataMask = VA_ARG (Marker, VOID *);\r
+ Delay = (UINT64)VA_ARG (Marker, UINT64);\r
\r
- return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);\r
+ return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);\r
}\r
+\r
/**\r
Internal function to add PCI config 2 poll opcode node to the table\r
\r
**/\r
EFI_STATUS\r
BootScriptWritePciConfig2Poll (\r
- IN VA_LIST Marker\r
+ IN VA_LIST Marker\r
)\r
{\r
- S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
- UINT16 Segment;\r
- UINT64 Address;\r
- VOID *Data;\r
- VOID *DataMask;\r
- UINT64 Delay;\r
-\r
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
- Segment = VA_ARG (Marker, UINT16);\r
- Address = VA_ARG (Marker, UINT64);\r
- Data = VA_ARG (Marker, VOID *);\r
- DataMask = VA_ARG (Marker, VOID *);\r
- Delay = (UINT64)VA_ARG (Marker, UINT64);\r
-\r
- return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);\r
-}\r
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
+ UINT16 Segment;\r
+ UINT64 Address;\r
+ VOID *Data;\r
+ VOID *DataMask;\r
+ UINT64 Delay;\r
\r
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+ Segment = VA_ARG (Marker, UINT16);\r
+ Address = VA_ARG (Marker, UINT64);\r
+ Data = VA_ARG (Marker, VOID *);\r
+ DataMask = VA_ARG (Marker, VOID *);\r
+ Delay = (UINT64)VA_ARG (Marker, UINT64);\r
+\r
+ return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);\r
+}\r
\r
/**\r
Adds a record into S3 boot script table.\r
EFI_STATUS\r
EFIAPI\r
BootScriptWrite (\r
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
- IN UINT16 OpCode,\r
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
+ IN UINTN OpCode,\r
...\r
)\r
{\r
- EFI_STATUS Status;\r
- VA_LIST Marker;\r
+ EFI_STATUS Status;\r
+ VA_LIST Marker;\r
+\r
//\r
// Build script according to opcode\r
//\r
switch (OpCode) {\r
-\r
- case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteIoWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteIoReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteMemWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteMemReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfgWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfgReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteSmbusExecute (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteStall (Marker);\r
- VA_END (Marker);\r
-\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteDispatch (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteDispatch2 (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteInformation (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteMemPoll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfg2Write (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteIoPoll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciConfigPoll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciConfig2Poll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- default:\r
- Status = EFI_INVALID_PARAMETER;\r
- break;\r
+ case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteIoWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteIoReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteMemWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteMemReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfgWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfgReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteSmbusExecute (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteStall (Marker);\r
+ VA_END (Marker);\r
+\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteDispatch (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteDispatch2 (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteInformation (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteMemPoll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfg2Write (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteIoPoll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciConfigPoll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciConfig2Poll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ default:\r
+ Status = EFI_INVALID_PARAMETER;\r
+ break;\r
}\r
\r
return Status;\r
}\r
+\r
/**\r
Insert a record into a specified Framework boot script table.\r
\r
EFI_STATUS\r
EFIAPI\r
BootScriptInsert (\r
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
- IN BOOLEAN BeforeOrAfter,\r
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,\r
- IN UINT16 OpCode,\r
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
+ IN BOOLEAN BeforeOrAfter,\r
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,\r
+ IN UINTN OpCode,\r
...\r
)\r
{\r
- EFI_STATUS Status;\r
- VA_LIST Marker;\r
+ EFI_STATUS Status;\r
+ VA_LIST Marker;\r
+\r
//\r
// Build script according to opcode\r
//\r
switch (OpCode) {\r
-\r
- case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteIoWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteIoReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteMemWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteMemReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfgWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfgReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteSmbusExecute (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteStall (Marker);\r
- VA_END (Marker);\r
-\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteDispatch (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteDispatch2 (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteInformation (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteMemPoll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfg2Write (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWriteIoPoll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciConfigPoll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
- VA_START (Marker, OpCode);\r
- Status = BootScriptWritePciConfig2Poll (Marker);\r
- VA_END (Marker);\r
- break;\r
-\r
- default:\r
- Status = EFI_INVALID_PARAMETER;\r
- break;\r
+ case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteIoWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteIoReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteMemWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteMemReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfgWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfgReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteSmbusExecute (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteStall (Marker);\r
+ VA_END (Marker);\r
+\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteDispatch (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteDispatch2 (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteInformation (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteMemPoll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfg2Write (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWriteIoPoll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciConfigPoll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
+ VA_START (Marker, OpCode);\r
+ Status = BootScriptWritePciConfig2Poll (Marker);\r
+ VA_END (Marker);\r
+ break;\r
+\r
+ default:\r
+ Status = EFI_INVALID_PARAMETER;\r
+ break;\r
}\r
\r
if (!EFI_ERROR (Status)) {\r
- Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, Position);\r
+ Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, (VOID **)Position);\r
}\r
+\r
return Status;\r
}\r
+\r
/**\r
Find a label within the boot script table and, if not present, optionally create it.\r
\r
EFI_STATUS\r
EFIAPI\r
BootScriptLabel (\r
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
- IN BOOLEAN BeforeOrAfter,\r
- IN BOOLEAN CreateIfNotFound,\r
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,\r
- IN CONST CHAR8 *Label\r
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
+ IN BOOLEAN BeforeOrAfter,\r
+ IN BOOLEAN CreateIfNotFound,\r
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,\r
+ IN CONST CHAR8 *Label\r
)\r
{\r
- return S3BootScriptLabel (BeforeOrAfter, CreateIfNotFound, Position, Label);\r
+ return S3BootScriptLabel (BeforeOrAfter, CreateIfNotFound, (VOID **)Position, Label);\r
}\r
+\r
/**\r
Compare two positions in the boot script table and return their relative position.\r
\r
EFI_STATUS\r
EFIAPI\r
BootScriptCompare (\r
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
- IN EFI_S3_BOOT_SCRIPT_POSITION Position1,\r
- IN EFI_S3_BOOT_SCRIPT_POSITION Position2,\r
- OUT UINTN *RelativePosition\r
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,\r
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position1,\r
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position2,\r
+ OUT UINTN *RelativePosition\r
)\r
{\r
return S3BootScriptCompare (Position1, Position2, RelativePosition);\r
}\r
+\r
/**\r
This routine is entry point of ScriptSave driver.\r
\r
\r
@retval EFI_OUT_OF_RESOURCES No enough resource\r
@retval EFI_SUCCESS Succesfully installed the ScriptSave driver.\r
- @retval other Errors occured.\r
+ @retval other Errors occurred.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
InitializeS3SaveState (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_EVENT EndOfDxeEvent;\r
+ EFI_STATUS Status;\r
+ EFI_EVENT EndOfDxeEvent;\r
\r
if (!PcdGetBool (PcdAcpiS3Enable)) {\r
return EFI_UNSUPPORTED;\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
- return gBS->InstallProtocolInterface (\r
- &mHandle,\r
- &gEfiS3SaveStateProtocolGuid,\r
- EFI_NATIVE_INTERFACE,\r
- &mS3SaveState\r
- );\r
-\r
+ return gBS->InstallProtocolInterface (\r
+ &mHandle,\r
+ &gEfiS3SaveStateProtocolGuid,\r
+ EFI_NATIVE_INTERFACE,\r
+ &mS3SaveState\r
+ );\r
}\r
-\r
-\r