diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Library/Dxe/Include/EfiScriptLib.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Library/Dxe/Include/EfiScriptLib.h')
-rw-r--r-- | EDK/Foundation/Library/Dxe/Include/EfiScriptLib.h | 570 |
1 files changed, 570 insertions, 0 deletions
diff --git a/EDK/Foundation/Library/Dxe/Include/EfiScriptLib.h b/EDK/Foundation/Library/Dxe/Include/EfiScriptLib.h new file mode 100644 index 0000000..53b523f --- /dev/null +++ b/EDK/Foundation/Library/Dxe/Include/EfiScriptLib.h @@ -0,0 +1,570 @@ +/*++ + +Copyright (c) 2004 - 2008, 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. + +Module Name: + + EfiScriptLib.h + +Abstract: + + +--*/ + +#ifndef _EFI_SCRIPT_LIB_H_ +#define _EFI_SCRIPT_LIB_H_ + +#include "Tiano.h" +#include "EfiCommonLib.h" +#include "EfiBootScript.h" +#include EFI_PROTOCOL_DEFINITION (BootScriptSave) + + +EFI_STATUS +EFIAPI +BootScriptSaveInitialize ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +/*++ + +Routine Description: + + Intialize Boot Script Lib if it has not yet been initialized. + +Arguments: + + ImageHandle - The firmware allocated handle for the EFI image. + + SystemTable - A pointer to the EFI System Table. + +Returns: + + EFI_STATUS always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveIoWrite ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN VOID *Buffer + ) +/*++ + +Routine Description: + + Save I/O write to boot script with opcode EFI_BOOT_SCRIPT_IO_WRITE_OPCODE + +Arguments: + + TableName - Desired boot script table + + Width - The width of the I/O operations. + + Address - The base address of the I/O operations. + + Count - The number of I/O operations to perform. + + Buffer - The source buffer from which to write data. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveIoReadWrite ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN VOID *Data, + IN VOID *DataMask + ) +/*++ + +Routine Description: + + Save I/O modify to boot script with opcode EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE + +Arguments: + + TableName - Desired boot script table + + Width - The width of the I/O operations. + + Address - The base address of the I/O operations. + + Data - A pointer to the data to be OR-ed. + + DataMask - A pointer to the data mask to be AND-ed with the data read from the register. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveMemWrite ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN VOID *Buffer + ) +/*++ + +Routine Description: + + Save memory write to boot script with opcode EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE + +Arguments: + + TableName - Desired boot script table + + Width - The width of the memory operations. + + Address - The base address of the memory operations. + + Count - The number of memory operations to perform. + + Buffer - The source buffer from which to write the data. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveMemReadWrite ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN VOID *Data, + IN VOID *DataMask + ) +/*++ + +Routine Description: + + Save memory modify to boot script with opcode EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE + +Arguments: + + TableName - Desired boot script table + + Width - The width of the memory operations. + + Address - The base address of the memory operations. + + Data - A pointer to the data to be OR-ed. + + DataMask - A pointer to the data mask to be AND-ed with the data read from the register. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSavePciCfgWrite ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN VOID *Buffer + ) +/*++ + +Routine Description: + + Save PCI configuration space write operation to boot script with opcode + EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE + +Arguments: + + TableName - Desired boot script table + + Width - The width of the PCI operations + + Address - The address within the PCI configuration space. + + Count - The number of PCI operations to perform. + + Buffer - The source buffer from which to write the data. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSavePciCfgReadWrite ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN VOID *Data, + IN VOID *DataMask + ) +/*++ + +Routine Description: + + Save PCI configuration space modify operation to boot script with opcode + EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE + +Arguments: + + TableName - Desired boot script table + + Width - The width of the PCI operations + + Address - The address within the PCI configuration space. + + Data - A pointer to the data to be OR-ed. + + DataMask - A pointer to the data mask to be AND-ed with the data read from the register. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; +; + +EFI_STATUS +EFIAPI +BootScriptSaveSmbusExecute ( + IN UINT16 TableName, + IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress, + IN EFI_SMBUS_DEVICE_COMMAND Command, + IN EFI_SMBUS_OPERATION Operation, + IN BOOLEAN PecCheck, + IN UINTN *Length, + IN VOID *Buffer + ) +/*++ + +Routine Description: + + Save SMBus command execution to boot script with opcode + EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE + +Arguments: + + TableName - Desired boot script table + SlaveAddress - The SMBus address for the slave device that the operation is targeting. + Command - The command that is transmitted by the SMBus host controller to the + SMBus slave device. + Operation - Indicates which particular SMBus protocol it will use to execute the + SMBus transactions. + PecCheck - Defines if Packet Error Code (PEC) checking is required for this operation. + Length - A pointer to signify the number of bytes that this operation will do. + Buffer - Contains the value of data to execute to the SMBUS slave device. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveStall ( + IN UINT16 TableName, + IN UINTN Duration + ) +/*++ + +Routine Description: + + Save execution stall on the processor to boot script with opcode + EFI_BOOT_SCRIPT_STALL_OPCODE + +Arguments: + + TableName - Desired boot script table + + Duration - Duration in microseconds of the stall. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveDispatch ( + IN UINT16 TableName, + IN EFI_PHYSICAL_ADDRESS EntryPoint + ) +/*++ + +Routine Description: + + Save dispatching specified arbitrary code to boot script with opcode + EFI_BOOT_SCRIPT_DISPATCH_OPCODE + +Arguments: + + TableName - Desired boot script table + + EntryPoint - Entry point of the code to be dispatched. + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptMemPoll ( + IN UINT16 TableName, + IN EFI_BOOT_SCRIPT_WIDTH Width, + IN UINT64 Address, + IN VOID *BitMask, + IN VOID *BitValue, + IN UINTN Duration, + IN UINTN LoopTimes + ) +/*++ + +Routine Description: + Polling one memory mapping register + +Arguments: + TableName - Desired boot script table + + Width - The width of the memory operations. + + Address - The base address of the memory operations. + + BitMask - A pointer to the bit mask to be AND-ed with the data read from the register. + + BitValue - A pointer to the data value after to be Masked. + + Duration - Duration in microseconds of the stall. + + LoopTimes - The times of the register polling. + +Returns: + + EFI_SUCCESS - The operation was executed successfully + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveInformation ( + IN UINT16 TableName, + IN UINT32 Length, + IN EFI_PHYSICAL_ADDRESS Buffer + ) +/*++ + +Routine Description: + + Save a Information Opcode record in table specified with TableName + +Arguments: + + TableName - Desired boot script table + Length - Length of information in bytes + Buffer - Content of information that will be saved in script table + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveInformationUnicodeString ( + IN UINT16 TableName, + IN CHAR16 *String + ) +/*++ + +Routine Description: + + Save a Information Opcode record in table specified with TableName, the information + is a unicode string. + +Arguments: + + TableName - Desired boot script table + String - The string that will be saved in script table + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +EFI_STATUS +EFIAPI +BootScriptSaveInformationAsciiString ( + IN UINT16 TableName, + IN CHAR8 *String + ) +/*++ + +Routine Description: + + Save a Information Opcode record in table specified with TableName, the information + is a ascii string. + +Arguments: + + TableName - Desired boot script table + String - The string that will be saved in script table + +Returns: + + EFI_NOT_FOUND - BootScriptSave Protocol not exist. + + EFI_STATUS - BootScriptSave Protocol exist, always returns EFI_SUCCESS + +--*/ +; + +#ifdef EFI_S3_RESUME + +#define INITIALIZE_SCRIPT(ImageHandle, SystemTable) \ + BootScriptSaveInitialize(ImageHandle, SystemTable) + +#define SCRIPT_IO_WRITE(TableName, Width, Address, Count, Buffer) \ + BootScriptSaveIoWrite(TableName, Width, Address, Count, Buffer) + +#define SCRIPT_IO_READ_WRITE(TableName, Width, Address, Data, DataMask) \ + BootScriptSaveIoReadWrite(TableName, Width, Address, Data, DataMask) + +#define SCRIPT_MEM_WRITE(TableName, Width, Address, Count, Buffer) \ + BootScriptSaveMemWrite(TableName, Width, Address, Count, Buffer) + +#define SCRIPT_MEM_WRITE_THIS(TableName, Width, Address, Count) \ + BootScriptSaveMemWrite(TableName, Width, Address, Count, (VOID*)(UINTN)Address) + +#define SCRIPT_MEM_READ_WRITE(TableName, Width, Address, Data, DataMask) \ + BootScriptSaveMemReadWrite(TableName, Width, Address, Data, DataMask) + +#define SCRIPT_PCI_CFG_WRITE(TableName, Width, Address, Count, Buffer) \ + BootScriptSavePciCfgWrite(TableName, Width, Address, Count, Buffer) + +#define SCRIPT_PCI_CFG_READ_WRITE(TableName, Width, Address, Data, DataMask) \ + BootScriptSavePciCfgReadWrite(TableName, Width, Address, Data, DataMask) + +#define SCRIPT_SMBUS_EXECUTE(TableName, SlaveAddress, Command, Operation, PecCheck, Length, Buffer) \ + BootScriptSaveSmbusExecute(TableName, SlaveAddress, Command, Operation, PecCheck, Length, Buffer) + +#define SCRIPT_STALL(TableName, Duration) \ + BootScriptSaveStall(TableName, Duration) + +#define SCRIPT_DISPATCH(TableName, EntryPoint) \ + BootScriptSaveDispatch(TableName, EntryPoint) + +#define SCRIPT_MEM_POLL(TableName, Width, Address, BitMask, BitValue, Duration, LoopTimes) \ + BootScriptMemPoll(TableName, Width, Address, BitMask, BitValue, Duration, LoopTimes) + +#define SCRIPT_INFORMATION(TableName, Length, Buffer) \ + BootScriptSaveInformation(TableName, Length, Buffer) + +#define SCRIPT_INFORMATION_UNICODE_STRING(TableName, String) \ + BootScriptSaveInformationUnicodeString(TableName, String) + +#define SCRIPT_INFORMATION_ASCII_STRING(TableName, String) \ + BootScriptSaveInformationAsciiString(TableName, String) + +#else + +#define INITIALIZE_SCRIPT(ImageHandle, SystemTable) + +#define SCRIPT_IO_WRITE(TableName, Width, Address, Count, Buffer) + +#define SCRIPT_IO_READ_WRITE(TableName, Width, Address, Data, DataMask) + +#define SCRIPT_MEM_WRITE(TableName, Width, Address, Count, Buffer) + +#define SCRIPT_MEM_WRITE_THIS(TableName, Width, Address, Count) + +#define SCRIPT_MEM_READ_WRITE(TableName, Width, Address, Data, DataMask) + +#define SCRIPT_PCI_CFG_WRITE(TableName, Width, Address, Count, Buffer) + +#define SCRIPT_PCI_CFG_READ_WRITE(TableName, Width, Address, Data, DataMask) + +#define SCRIPT_SMBUS_EXECUTE(TableName, SlaveAddress, Command, Operation, PecCheck, Length, Buffer) + +#define SCRIPT_STALL(TableName, Duration) + +#define SCRIPT_DISPATCH(TableName, EntryPoint) + +#define SCRIPT_MEM_POLL(TableName, Width, Address, BitMask, BitValue, Duration, LoopTimes) + +#define SCRIPT_INFORMATION(TableName, Length, Buffer) + +#define SCRIPT_INFORMATION_UNICODE_STRING(TableName, String) + +#define SCRIPT_INFORMATION_ASCII_STRING(TableName, String) + +#endif + +#endif |