]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Framework/Ppi/CpuIo/CpuIo.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Ppi / CpuIo / CpuIo.h
CommitLineData
3eb9473e 1/*++\r
2\r
f57387d5
HT
3Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials \r
3eb9473e 5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 CpuIo.h\r
15\r
16Abstract:\r
17\r
18 CPU IO PPI defined in Tiano\r
19 CPU IO PPI abstracts CPU IO access\r
20 \r
21\r
22--*/\r
23\r
24#ifndef _PEI_CPUIO_PPI_H_\r
25#define _PEI_CPUIO_PPI_H_\r
26\r
27#define PEI_CPU_IO_PPI_GUID \\r
28 { \\r
7ccf38a3 29 0xe6af1f7b, 0xfc3f, 0x46da, {0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82} \\r
3eb9473e 30 }\r
31\r
32EFI_FORWARD_DECLARATION (PEI_CPU_IO_PPI);\r
33\r
34//\r
35// *******************************************************\r
36// PEI_CPU_IO_PPI_WIDTH\r
37// *******************************************************\r
38//\r
39typedef enum {\r
40 PeiCpuIoWidthUint8,\r
41 PeiCpuIoWidthUint16,\r
42 PeiCpuIoWidthUint32,\r
43 PeiCpuIoWidthUint64,\r
44 PeiCpuIoWidthFifoUint8,\r
45 PeiCpuIoWidthFifoUint16,\r
46 PeiCpuIoWidthFifoUint32,\r
47 PeiCpuIoWidthFifoUint64,\r
48 PeiCpuIoWidthFillUint8,\r
49 PeiCpuIoWidthFillUint16,\r
50 PeiCpuIoWidthFillUint32,\r
51 PeiCpuIoWidthFillUint64,\r
52 PeiCpuIoWidthMaximum\r
53} PEI_CPU_IO_PPI_WIDTH;\r
54\r
55//\r
56// *******************************************************\r
57// PEI_CPU_IO_PPI_IO_MEM\r
58// *******************************************************\r
59//\r
60typedef\r
61EFI_STATUS\r
62(EFIAPI *PEI_CPU_IO_PPI_IO_MEM) (\r
63 IN EFI_PEI_SERVICES **PeiServices,\r
64 IN PEI_CPU_IO_PPI * This,\r
65 IN PEI_CPU_IO_PPI_WIDTH Width,\r
66 IN UINT64 Address,\r
67 IN UINTN Count,\r
68 IN OUT VOID *Buffer\r
69 );\r
70\r
71//\r
72// *******************************************************\r
73// PEI_CPU_IO_PPI_ACCESS\r
74// *******************************************************\r
75//\r
76typedef struct {\r
77 PEI_CPU_IO_PPI_IO_MEM Read;\r
78 PEI_CPU_IO_PPI_IO_MEM Write;\r
79} PEI_CPU_IO_PPI_ACCESS;\r
80\r
81//\r
82// *******************************************************\r
83// Base IO Class Functions\r
84// *******************************************************\r
85//\r
86typedef\r
87UINT8\r
88(EFIAPI *PEI_CPU_IO_PPI_IO_READ8) (\r
89 IN EFI_PEI_SERVICES **PeiServices,\r
90 IN PEI_CPU_IO_PPI * This,\r
91 IN UINT64 Address\r
92 );\r
93\r
94typedef\r
95UINT16\r
96(EFIAPI *PEI_CPU_IO_PPI_IO_READ16) (\r
97 IN EFI_PEI_SERVICES **PeiServices,\r
98 IN PEI_CPU_IO_PPI * This,\r
99 IN UINT64 Address\r
100 );\r
101\r
102typedef\r
103UINT32\r
104(EFIAPI *PEI_CPU_IO_PPI_IO_READ32) (\r
105 IN EFI_PEI_SERVICES **PeiServices,\r
106 IN PEI_CPU_IO_PPI * This,\r
107 IN UINT64 Address\r
108 );\r
109\r
110typedef\r
111UINT64\r
112(EFIAPI *PEI_CPU_IO_PPI_IO_READ64) (\r
113 IN EFI_PEI_SERVICES **PeiServices,\r
114 IN PEI_CPU_IO_PPI * This,\r
115 IN UINT64 Address\r
116 );\r
117\r
118typedef\r
119VOID\r
120(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE8) (\r
121 IN EFI_PEI_SERVICES **PeiServices,\r
122 IN PEI_CPU_IO_PPI * This,\r
123 IN UINT64 Address,\r
124 IN UINT8 Data\r
125 );\r
126\r
127typedef\r
128VOID\r
129(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE16) (\r
130 IN EFI_PEI_SERVICES **PeiServices,\r
131 IN PEI_CPU_IO_PPI * This,\r
132 IN UINT64 Address,\r
133 IN UINT16 Data\r
134 );\r
135\r
136typedef\r
137VOID\r
138(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE32) (\r
139 IN EFI_PEI_SERVICES **PeiServices,\r
140 IN PEI_CPU_IO_PPI * This,\r
141 IN UINT64 Address,\r
142 IN UINT32 Data\r
143 );\r
144\r
145typedef\r
146VOID\r
147(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE64) (\r
148 IN EFI_PEI_SERVICES **PeiServices,\r
149 IN PEI_CPU_IO_PPI * This,\r
150 IN UINT64 Address,\r
151 IN UINT64 Data\r
152 );\r
153\r
154typedef\r
155UINT8\r
156(EFIAPI *PEI_CPU_IO_PPI_MEM_READ8) (\r
157 IN EFI_PEI_SERVICES **PeiServices,\r
158 IN PEI_CPU_IO_PPI * This,\r
159 IN UINT64 Address\r
160 );\r
161\r
162typedef\r
163UINT16\r
164(EFIAPI *PEI_CPU_IO_PPI_MEM_READ16) (\r
165 IN EFI_PEI_SERVICES **PeiServices,\r
166 IN PEI_CPU_IO_PPI * This,\r
167 IN UINT64 Address\r
168 );\r
169\r
170typedef\r
171UINT32\r
172(EFIAPI *PEI_CPU_IO_PPI_MEM_READ32) (\r
173 IN EFI_PEI_SERVICES **PeiServices,\r
174 IN PEI_CPU_IO_PPI * This,\r
175 IN UINT64 Address\r
176 );\r
177\r
178typedef\r
179UINT64\r
180(EFIAPI *PEI_CPU_IO_PPI_MEM_READ64) (\r
181 IN EFI_PEI_SERVICES **PeiServices,\r
182 IN PEI_CPU_IO_PPI * This,\r
183 IN UINT64 Address\r
184 );\r
185\r
186typedef\r
187VOID\r
188(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE8) (\r
189 IN EFI_PEI_SERVICES **PeiServices,\r
190 IN PEI_CPU_IO_PPI * This,\r
191 IN UINT64 Address,\r
192 IN UINT8 Data\r
193 );\r
194\r
195typedef\r
196VOID\r
197(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE16) (\r
198 IN EFI_PEI_SERVICES **PeiServices,\r
199 IN PEI_CPU_IO_PPI * This,\r
200 IN UINT64 Address,\r
201 IN UINT16 Data\r
202 );\r
203\r
204typedef\r
205VOID\r
206(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE32) (\r
207 IN EFI_PEI_SERVICES **PeiServices,\r
208 IN PEI_CPU_IO_PPI * This,\r
209 IN UINT64 Address,\r
210 IN UINT32 Data\r
211 );\r
212\r
213typedef\r
214VOID\r
215(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE64) (\r
216 IN EFI_PEI_SERVICES **PeiServices,\r
217 IN PEI_CPU_IO_PPI * This,\r
218 IN UINT64 Address,\r
219 IN UINT64 Data\r
220 );\r
221\r
222//\r
223// *******************************************************\r
224// PEI_CPU_IO_PPI\r
225// *******************************************************\r
226//\r
8cdb2112 227struct _PEI_CPU_IO_PPI {\r
3eb9473e 228 PEI_CPU_IO_PPI_ACCESS Mem;\r
229 PEI_CPU_IO_PPI_ACCESS Io;\r
230 PEI_CPU_IO_PPI_IO_READ8 IoRead8;\r
231 PEI_CPU_IO_PPI_IO_READ16 IoRead16;\r
232 PEI_CPU_IO_PPI_IO_READ32 IoRead32;\r
233 PEI_CPU_IO_PPI_IO_READ64 IoRead64;\r
234 PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8;\r
235 PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16;\r
236 PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32;\r
237 PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64;\r
238 PEI_CPU_IO_PPI_MEM_READ8 MemRead8;\r
239 PEI_CPU_IO_PPI_MEM_READ16 MemRead16;\r
240 PEI_CPU_IO_PPI_MEM_READ32 MemRead32;\r
241 PEI_CPU_IO_PPI_MEM_READ64 MemRead64;\r
242 PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8;\r
243 PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16;\r
244 PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32;\r
245 PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64;\r
8cdb2112 246};\r
3eb9473e 247\r
248extern EFI_GUID gPeiCpuIoPpiInServiceTableGuid;\r
249\r
250#endif\r