]>
Commit | Line | Data |
---|---|---|
3eb9473e | 1 | /*++\r |
2 | \r | |
f57387d5 HT |
3 | Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r |
4 | This program and the accompanying materials \r | |
3eb9473e | 5 | are licensed and made available under the terms and conditions of the BSD License \r |
6 | which accompanies this distribution. The full text of the license may be found at \r | |
7 | http://opensource.org/licenses/bsd-license.php \r | |
8 | \r | |
9 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r | |
10 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r | |
11 | \r | |
12 | Module Name:\r | |
13 | \r | |
14 | CpuIO.h\r | |
15 | \r | |
16 | Abstract:\r | |
17 | \r | |
18 | CPU IO Protocol as defined in Tiano\r | |
19 | \r | |
20 | This code abstracts the CPU IO Protocol\r | |
21 | \r | |
22 | --*/\r | |
23 | \r | |
24 | #ifndef _CPUIO_H_\r | |
25 | #define _CPUIO_H_\r | |
26 | \r | |
27 | #define EFI_CPU_IO_PROTOCOL_GUID \\r | |
28 | { \\r | |
7ccf38a3 | 29 | 0xB0732526, 0x38C8, 0x4b40, {0x88, 0x77, 0x61, 0xC7, 0xB0, 0x6A, 0xAC, 0x45} \\r |
3eb9473e | 30 | }\r |
31 | \r | |
32 | EFI_FORWARD_DECLARATION (EFI_CPU_IO_PROTOCOL);\r | |
33 | \r | |
34 | //\r | |
35 | // *******************************************************\r | |
36 | // EFI_CPU_IO_PROTOCOL_WIDTH\r | |
37 | // *******************************************************\r | |
38 | //\r | |
39 | typedef enum {\r | |
40 | EfiCpuIoWidthUint8,\r | |
41 | EfiCpuIoWidthUint16,\r | |
42 | EfiCpuIoWidthUint32,\r | |
43 | EfiCpuIoWidthUint64,\r | |
44 | EfiCpuIoWidthFifoUint8,\r | |
45 | EfiCpuIoWidthFifoUint16,\r | |
46 | EfiCpuIoWidthFifoUint32,\r | |
47 | EfiCpuIoWidthFifoUint64,\r | |
48 | EfiCpuIoWidthFillUint8,\r | |
49 | EfiCpuIoWidthFillUint16,\r | |
50 | EfiCpuIoWidthFillUint32,\r | |
51 | EfiCpuIoWidthFillUint64,\r | |
52 | EfiCpuIoWidthMaximum\r | |
53 | } EFI_CPU_IO_PROTOCOL_WIDTH;\r | |
54 | \r | |
55 | //\r | |
56 | // *******************************************************\r | |
57 | // EFI_CPU_IO_PROTOCOL_IO_MEM\r | |
58 | // *******************************************************\r | |
59 | //\r | |
60 | typedef\r | |
61 | EFI_STATUS\r | |
62 | EFI_RUNTIMESERVICE\r | |
63 | (EFIAPI *EFI_CPU_IO_PROTOCOL_IO_MEM) (\r | |
64 | IN EFI_CPU_IO_PROTOCOL * This,\r | |
65 | IN EFI_CPU_IO_PROTOCOL_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 | // EFI_CPU_IO_PROTOCOL_ACCESS\r | |
74 | // *******************************************************\r | |
75 | //\r | |
76 | typedef struct {\r | |
77 | EFI_CPU_IO_PROTOCOL_IO_MEM Read;\r | |
78 | EFI_CPU_IO_PROTOCOL_IO_MEM Write;\r | |
79 | } EFI_CPU_IO_PROTOCOL_ACCESS;\r | |
80 | \r | |
81 | //\r | |
82 | // *******************************************************\r | |
83 | // EFI_CPU_IO_PROTOCOL\r | |
84 | // *******************************************************\r | |
85 | //\r | |
5d46191d | 86 | struct _EFI_CPU_IO_PROTOCOL {\r |
3eb9473e | 87 | EFI_CPU_IO_PROTOCOL_ACCESS Mem;\r |
88 | EFI_CPU_IO_PROTOCOL_ACCESS Io;\r | |
5d46191d | 89 | };\r |
3eb9473e | 90 | \r |
91 | extern EFI_GUID gEfiCpuIoProtocolGuid;\r | |
92 | \r | |
93 | #endif\r |