]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptInternalFormat.h
MdeModulePkg: Add PiDxeS3BootScriptLib
[mirror_edk2.git] / MdeModulePkg / Library / PiDxeS3BootScriptLib / BootScriptInternalFormat.h
diff --git a/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptInternalFormat.h b/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptInternalFormat.h
new file mode 100644 (file)
index 0000000..6edb11a
--- /dev/null
@@ -0,0 +1,186 @@
+/** @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