]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Common/BootScript.h
Add gcc macro to remove pack() for gcc build
[mirror_edk2.git] / MdePkg / Include / Common / BootScript.h
CommitLineData
878ddf1f 1/** @file\r
2 This file declares the related BootScript definitions and some SMBus definitions.\r
3\r
4 Copyright (c) 2006, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13 Module Name: BootScript.h\r
14\r
15 @par Revision Reference:\r
16 These definitions are defined in BootScript Spec 0.91 and SmBus PPI spec 0.9.\r
17\r
18**/\r
19\r
20#ifndef _EFI_SCRIPT_H_\r
21#define _EFI_SCRIPT_H_\r
22\r
23#define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00\r
24\r
25//\r
26// Boot Script Opcode Definitions\r
27//\r
28\r
29#define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00\r
30#define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01\r
31#define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02\r
32#define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03\r
33#define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04\r
34#define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05\r
35#define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06\r
36#define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07\r
37#define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08\r
64ec22c0 38#define EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE 0x09\r
878ddf1f 39\r
40#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA\r
41#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF\r
42\r
b026832e 43#ifndef __GNUC__\r
4a0b6afe 44#pragma pack(1)\r
b026832e 45#endif\r
4a0b6afe 46\r
878ddf1f 47//\r
48// EFI Boot Script Width\r
49//\r
50typedef enum {\r
51 EfiBootScriptWidthUint8,\r
52 EfiBootScriptWidthUint16,\r
53 EfiBootScriptWidthUint32,\r
54 EfiBootScriptWidthUint64,\r
55 EfiBootScriptWidthFifoUint8,\r
56 EfiBootScriptWidthFifoUint16,\r
57 EfiBootScriptWidthFifoUint32,\r
58 EfiBootScriptWidthFifoUint64,\r
59 EfiBootScriptWidthFillUint8,\r
60 EfiBootScriptWidthFillUint16,\r
61 EfiBootScriptWidthFillUint32,\r
62 EfiBootScriptWidthFillUint64,\r
63 EfiBootScriptWidthMaximum\r
64} EFI_BOOT_SCRIPT_WIDTH;\r
65\r
66//\r
67// EFI Smbus Device Address, Smbus Device Command, Smbus Operation\r
68//\r
69typedef struct {\r
70 UINTN SmbusDeviceAddress : 7;\r
71} EFI_SMBUS_DEVICE_ADDRESS;\r
72\r
73typedef UINTN EFI_SMBUS_DEVICE_COMMAND;\r
74\r
75typedef enum _EFI_SMBUS_OPERATION\r
76{\r
77 EfiSmbusQuickRead,\r
78 EfiSmbusQuickWrite,\r
79 EfiSmbusReceiveByte,\r
80 EfiSmbusSendByte,\r
81 EfiSmbusReadByte,\r
82 EfiSmbusWriteByte,\r
83 EfiSmbusReadWord,\r
84 EfiSmbusWriteWord,\r
85 EfiSmbusReadBlock,\r
86 EfiSmbusWriteBlock,\r
87 EfiSmbusProcessCall,\r
88 EfiSmbusBWBRProcessCall\r
89} EFI_SMBUS_OPERATION;\r
90\r
91//\r
92// Boot Script Opcode Header Structure Definitions\r
93//\r
94\r
95typedef struct {\r
96 UINT16 OpCode;\r
97 UINT8 Length;\r
98} EFI_BOOT_SCRIPT_GENERIC_HEADER;\r
99\r
100typedef struct {\r
101 UINT16 OpCode;\r
102 UINT8 Length;\r
103 UINT16 Version;\r
104 UINT32 TableLength;\r
105 UINT16 Reserved[2];\r
106} EFI_BOOT_SCRIPT_TABLE_HEADER;\r
107\r
108typedef struct {\r
109 UINT16 OpCode;\r
110 UINT8 Length;\r
111 EFI_BOOT_SCRIPT_WIDTH Width;\r
112} EFI_BOOT_SCRIPT_COMMON_HEADER;\r
113\r
114typedef struct {\r
115 UINT16 OpCode;\r
116 UINT8 Length;\r
117 EFI_BOOT_SCRIPT_WIDTH Width;\r
118 UINTN Count;\r
119 UINT64 Address;\r
120} EFI_BOOT_SCRIPT_IO_WRITE;\r
121\r
122typedef struct {\r
123 UINT16 OpCode;\r
124 UINT8 Length;\r
125 EFI_BOOT_SCRIPT_WIDTH Width;\r
126 UINT64 Address;\r
127} EFI_BOOT_SCRIPT_IO_READ_WRITE;\r
128\r
129typedef struct {\r
130 UINT16 OpCode;\r
131 UINT8 Length;\r
132 EFI_BOOT_SCRIPT_WIDTH Width;\r
133 UINTN Count;\r
134 UINT64 Address;\r
135} EFI_BOOT_SCRIPT_MEM_WRITE;\r
136\r
137typedef struct {\r
138 UINT16 OpCode;\r
139 UINT8 Length;\r
140 EFI_BOOT_SCRIPT_WIDTH Width;\r
141 UINT64 Address;\r
142} EFI_BOOT_SCRIPT_MEM_READ_WRITE;\r
143\r
144typedef struct {\r
145 UINT16 OpCode;\r
146 UINT8 Length;\r
147 EFI_BOOT_SCRIPT_WIDTH Width;\r
148 UINTN Count;\r
149 UINT64 Address;\r
150} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;\r
151\r
152typedef struct {\r
153 UINT16 OpCode;\r
154 UINT8 Length;\r
155 EFI_BOOT_SCRIPT_WIDTH Width;\r
156 UINT64 Address;\r
157} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;\r
158\r
159typedef struct {\r
160 UINT16 OpCode;\r
161 UINT8 Length;\r
162 EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;\r
163 EFI_SMBUS_DEVICE_COMMAND Command;\r
164 EFI_SMBUS_OPERATION Operation;\r
165 BOOLEAN PecCheck;\r
166 UINTN DataSize;\r
167} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;\r
168\r
169typedef struct {\r
170 UINT16 OpCode;\r
171 UINT8 Length;\r
172 UINTN Duration;\r
173} EFI_BOOT_SCRIPT_STALL;\r
174\r
175typedef struct {\r
176 UINT16 OpCode;\r
177 UINT8 Length;\r
178 EFI_PHYSICAL_ADDRESS EntryPoint;\r
179} EFI_BOOT_SCRIPT_DISPATCH;\r
180\r
64ec22c0 181typedef struct {\r
182 UINT16 OpCode;\r
183 UINT8 Length;\r
184 EFI_PHYSICAL_ADDRESS EntryPoint;\r
185 EFI_PHYSICAL_ADDRESS Context;\r
186} EFI_BOOT_SCRIPT_DISPATCH_2;\r
187\r
878ddf1f 188typedef struct {\r
189 UINT16 OpCode;\r
190 UINT8 Length;\r
191} EFI_BOOT_SCRIPT_TERMINATE;\r
192\r
193typedef union {\r
194 EFI_BOOT_SCRIPT_GENERIC_HEADER *Header;\r
195 EFI_BOOT_SCRIPT_TABLE_HEADER *TableInfo;\r
196 EFI_BOOT_SCRIPT_IO_WRITE *IoWrite;\r
197 EFI_BOOT_SCRIPT_IO_READ_WRITE *IoReadWrite;\r
198 EFI_BOOT_SCRIPT_MEM_WRITE *MemWrite;\r
199 EFI_BOOT_SCRIPT_MEM_READ_WRITE *MemReadWrite;\r
200 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE *PciWrite;\r
201 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE *PciReadWrite;\r
202 EFI_BOOT_SCRIPT_SMBUS_EXECUTE *SmbusExecute;\r
203 EFI_BOOT_SCRIPT_STALL *Stall;\r
204 EFI_BOOT_SCRIPT_DISPATCH *Dispatch;\r
64ec22c0 205 EFI_BOOT_SCRIPT_DISPATCH_2 *Dispatch2; \r
878ddf1f 206 EFI_BOOT_SCRIPT_TERMINATE *Terminate;\r
207 EFI_BOOT_SCRIPT_COMMON_HEADER *CommonHeader;\r
208 UINT8 *Raw;\r
209} BOOT_SCRIPT_POINTERS;\r
210\r
b026832e 211#ifndef __GNUC__\r
4a0b6afe 212#pragma pack()\r
b026832e 213#endif\r
4a0b6afe 214\r
878ddf1f 215#endif\r