--- /dev/null
+/** @file\r
+ This file declares the internal Framework Boot Script format used by\r
+ the PI implementation of Script Saver and Executor.\r
+\r
+ Copyright (c) 2006, 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
+#ifndef _BOOT_SCRIPT_INTERNAL_FORMAT_H_\r
+#define _BOOT_SCRIPT_INTERNAL_FORMAT_H_\r
+\r
+#pragma pack(1)\r
+\r
+//\r
+// Boot Script Opcode Header Structure Definitions\r
+//\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT16 Version;\r
+ UINT32 TableLength;\r
+ UINT16 Reserved[2];\r
+} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT32 Count;\r
+ UINT64 Address;\r
+} EFI_BOOT_SCRIPT_IO_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT32 Count;\r
+ UINT64 Address;\r
+} EFI_BOOT_SCRIPT_MEM_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+} EFI_BOOT_SCRIPT_MEM_READ_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT32 Count;\r
+ UINT64 Address;\r
+} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT32 Count;\r
+ UINT64 Address;\r
+ UINT16 Segment;\r
+} EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+ UINT16 Segment;\r
+} EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT64 SmBusAddress;\r
+ UINT32 Operation;\r
+ UINT32 DataSize;\r
+} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT64 Duration;\r
+} EFI_BOOT_SCRIPT_STALL;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ EFI_PHYSICAL_ADDRESS EntryPoint;\r
+} EFI_BOOT_SCRIPT_DISPATCH;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ EFI_PHYSICAL_ADDRESS EntryPoint;\r
+ EFI_PHYSICAL_ADDRESS Context;\r
+} EFI_BOOT_SCRIPT_DISPATCH_2;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+ UINT64 Duration;\r
+ UINT64 LoopTimes;\r
+} EFI_BOOT_SCRIPT_MEM_POLL;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 InformationLength; \r
+ EFI_PHYSICAL_ADDRESS Information;\r
+} EFI_BOOT_SCRIPT_INFORMATION;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+ UINT64 Delay;\r
+} EFI_BOOT_SCRIPT_IO_POLL;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+ UINT64 Delay;\r
+} EFI_BOOT_SCRIPT_PCI_CONFIG_POLL;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+ UINT32 Width;\r
+ UINT64 Address;\r
+ UINT16 Segment; \r
+ UINT64 Delay;\r
+} EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL;\r
+\r
+typedef struct {\r
+ UINT16 OpCode;\r
+ UINT8 Length;\r
+} EFI_BOOT_SCRIPT_TERMINATE;\r
+\r
+\r
+#pragma pack()\r
+\r
+#define BOOT_SCRIPT_NODE_MAX_LENGTH 1024\r
+\r
+#endif\r