]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/Io.c
Maintainers.txt: Remove EdkCompatibilityPkg information
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / RuntimeDxe / EfiRuntimeLib / Io.c
CommitLineData
3eb9473e 1/*++\r
2\r
0ccabf7b 3Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
4ea9375a 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 Io.c\r
15\r
16Abstract:\r
17\r
18 Light weight lib functions that wrape IoRead (), IoWrite, MemRead (), \r
19 and MemWrite ().\r
20\r
21--*/\r
22\r
23#include "Tiano.h"\r
24#include "EfiRuntimeLib.h"\r
25\r
26UINT8\r
27IoRead8 (\r
28 IN UINT64 Address\r
29 )\r
30/*++\r
31\r
32Routine Description:\r
33 Do a one byte IO read\r
34\r
35Arguments:\r
36 Address - IO address to read\r
37\r
38Returns: \r
39 Data read\r
40\r
41--*/\r
42{\r
43 UINT8 Buffer;\r
44\r
0ccabf7b 45 Buffer = 0;\r
3eb9473e 46 EfiIoRead (EfiCpuIoWidthUint8, Address, 1, &Buffer);\r
47 return Buffer;\r
48}\r
49\r
50UINT16\r
51IoRead16 (\r
52 IN UINT64 Address\r
53 )\r
54/*++\r
55\r
56Routine Description:\r
57 Do a two byte IO read\r
58\r
59Arguments:\r
60 Address - IO address to read\r
61\r
62Returns: \r
63 Data read\r
64\r
65--*/\r
66{\r
67 UINT16 Buffer;\r
68\r
0ccabf7b 69 Buffer = 0;\r
3eb9473e 70 EfiIoRead (EfiCpuIoWidthUint16, Address, 1, &Buffer);\r
71 return Buffer;\r
72}\r
73\r
74UINT32\r
75IoRead32 (\r
76 IN UINT64 Address\r
77 )\r
78/*++\r
79\r
80Routine Description:\r
81 Do a four byte IO read\r
82\r
83Arguments:\r
84 Address - IO address to read\r
85\r
86Returns: \r
87 Data read\r
88\r
89--*/\r
90{\r
91 UINT32 Buffer;\r
92\r
0ccabf7b 93 Buffer = 0;\r
3eb9473e 94 EfiIoRead (EfiCpuIoWidthUint32, Address, 1, &Buffer);\r
95 return Buffer;\r
96}\r
97\r
98VOID\r
99IoWrite8 (\r
100 IN UINT64 Address,\r
101 IN UINT8 Data\r
102 )\r
103/*++\r
104\r
105Routine Description:\r
106 Do a one byte IO write\r
107\r
108Arguments:\r
109 Address - IO address to write\r
110 Data - Data to write to Address\r
111\r
112Returns: \r
113 NONE\r
114\r
115--*/\r
116{\r
117 EfiIoWrite (EfiCpuIoWidthUint8, Address, 1, &Data);\r
118}\r
119\r
120VOID\r
121IoWrite16 (\r
122 IN UINT64 Address,\r
123 IN UINT16 Data\r
124 )\r
125/*++\r
126\r
127Routine Description:\r
128 Do a two byte IO write\r
129\r
130Arguments:\r
131 Address - IO address to write\r
132 Data - Data to write to Address\r
133\r
134Returns: \r
135 NONE\r
136\r
137--*/\r
138{\r
139 EfiIoWrite (EfiCpuIoWidthUint16, Address, 1, &Data);\r
140}\r
141\r
142VOID\r
143IoWrite32 (\r
144 IN UINT64 Address,\r
145 IN UINT32 Data\r
146 )\r
147/*++\r
148\r
149Routine Description:\r
150 Do a four byte IO write\r
151\r
152Arguments:\r
153 Address - IO address to write\r
154 Data - Data to write to Address\r
155\r
156Returns: \r
157 NONE\r
158\r
159--*/\r
160{\r
161 EfiIoWrite (EfiCpuIoWidthUint32, Address, 1, &Data);\r
162}\r
163\r
164UINT8\r
165MemRead8 (\r
166 IN UINT64 Address\r
167 )\r
168/*++\r
169\r
170Routine Description:\r
171 Do a one byte Memory mapped IO read\r
172\r
173Arguments:\r
174 Address - Memory mapped IO address to read\r
175\r
176Returns: \r
177 Data read\r
178\r
179--*/\r
180{\r
181 UINT8 Buffer;\r
182\r
0ccabf7b 183 Buffer = 0;\r
3eb9473e 184 EfiMemRead (EfiCpuIoWidthUint8, Address, 1, &Buffer);\r
185 return Buffer;\r
186}\r
187\r
188UINT16\r
189MemRead16 (\r
190 IN UINT64 Address\r
191 )\r
192/*++\r
193\r
194Routine Description:\r
195 Do a two byte Memory mapped IO read\r
196\r
197Arguments:\r
198 Address - Memory mapped IO address to read\r
199\r
200Returns: \r
201 Data read\r
202\r
203--*/\r
204{\r
205 UINT16 Buffer;\r
206\r
0ccabf7b 207 Buffer = 0;\r
3eb9473e 208 EfiMemRead (EfiCpuIoWidthUint16, Address, 1, &Buffer);\r
209 return Buffer;\r
210}\r
211\r
212UINT32\r
213MemRead32 (\r
214 IN UINT64 Address\r
215 )\r
216/*++\r
217\r
218Routine Description:\r
219 Do a four byte Memory mapped IO read\r
220\r
221Arguments:\r
222 Address - Memory mapped IO address to read\r
223\r
224Returns: \r
225 Data read\r
226\r
227--*/\r
228{\r
229 UINT32 Buffer;\r
230\r
0ccabf7b 231 Buffer = 0;\r
3eb9473e 232 EfiMemRead (EfiCpuIoWidthUint32, Address, 1, &Buffer);\r
233 return Buffer;\r
234}\r
235\r
236UINT64\r
237MemRead64 (\r
238 IN UINT64 Address\r
239 )\r
240/*++\r
241\r
242Routine Description:\r
243 Do a eight byte Memory mapped IO read\r
244\r
245Arguments:\r
246 Address - Memory mapped IO address to read\r
247\r
248Returns: \r
249 Data read\r
250\r
251--*/\r
252{\r
253 UINT64 Buffer;\r
254\r
0ccabf7b 255 Buffer = 0;\r
3eb9473e 256 EfiMemRead (EfiCpuIoWidthUint64, Address, 1, &Buffer);\r
257 return Buffer;\r
258}\r
259\r
260VOID\r
261MemWrite8 (\r
262 IN UINT64 Address,\r
263 IN UINT8 Data\r
264 )\r
265/*++\r
266\r
267Routine Description:\r
268 Do a one byte Memory mapped IO write\r
269\r
270Arguments:\r
271 Address - Memory mapped IO address to write\r
272 Data - Data to write to Address\r
273\r
274Returns: \r
275 NONE\r
276\r
277--*/\r
278{\r
279 EfiMemWrite (EfiCpuIoWidthUint8, Address, 1, &Data);\r
280}\r
281\r
282VOID\r
283MemWrite16 (\r
284 IN UINT64 Address,\r
285 IN UINT16 Data\r
286 )\r
287/*++\r
288\r
289Routine Description:\r
290 Do a two byte Memory mapped IO write\r
291\r
292Arguments:\r
293 Address - Memory mapped IO address to write\r
294 Data - Data to write to Address\r
295\r
296Returns: \r
297 NONE\r
298\r
299--*/\r
300{\r
301 EfiMemWrite (EfiCpuIoWidthUint16, Address, 1, &Data);\r
302}\r
303\r
304VOID\r
305MemWrite32 (\r
306 IN UINT64 Address,\r
307 IN UINT32 Data\r
308 )\r
309/*++\r
310\r
311Routine Description:\r
312 Do a four byte Memory mapped IO write\r
313\r
314Arguments:\r
315 Address - Memory mapped IO address to write\r
316 Data - Data to write to Address\r
317\r
318Returns: \r
319 NONE\r
320\r
321--*/\r
322{\r
323 EfiMemWrite (EfiCpuIoWidthUint32, Address, 1, &Data);\r
324}\r
325\r
326VOID\r
327MemWrite64 (\r
328 IN UINT64 Address,\r
329 IN UINT64 Data\r
330 )\r
331/*++\r
332\r
333Routine Description:\r
334 Do a eight byte Memory mapped IO write\r
335\r
336Arguments:\r
337 Address - Memory mapped IO address to write\r
338 Data - Data to write to Address\r
339\r
340Returns: \r
341 NONE\r
342\r
343--*/\r
344{\r
345 EfiMemWrite (EfiCpuIoWidthUint64, Address, 1, &Data);\r
346}\r