]> git.proxmox.com Git - mirror_edk2.git/blame - UnixPkg/CpuRuntimeDxe/CpuDriver.h
Update the copyright notice format
[mirror_edk2.git] / UnixPkg / CpuRuntimeDxe / CpuDriver.h
CommitLineData
804405e7 1/*++\r
2\r
f9b8ab56
HT
3Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials \r
804405e7 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 CpuDriver.h\r
15\r
16Abstract:\r
17\r
18 UNIX Emulation Architectural Protocol Driver as defined in Tiano.\r
19\r
20--*/\r
21\r
22#ifndef _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_\r
23#define _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_\r
24\r
25\r
26\r
27extern UINT8 CpuStrings[];\r
28\r
29//\r
30// Internal Data Structures\r
31//\r
208301e9 32#define CPU_ARCH_PROT_PRIVATE_SIGNATURE SIGNATURE_32 ('c', 'a', 'p', 'd')\r
804405e7 33\r
34typedef struct {\r
35 UINTN Signature;\r
36 EFI_HANDLE Handle;\r
37\r
38 EFI_CPU_ARCH_PROTOCOL Cpu;\r
5161b24d 39 EFI_CPU_IO2_PROTOCOL CpuIo;\r
804405e7 40\r
41 //\r
42 // Local Data for CPU interface goes here\r
43 //\r
44 BOOLEAN InterruptState;\r
45\r
46} CPU_ARCH_PROTOCOL_PRIVATE;\r
47\r
48#define CPU_ARCH_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \\r
49 CR (a, \\r
50 CPU_ARCH_PROTOCOL_PRIVATE, \\r
51 Cpu, \\r
52 CPU_ARCH_PROT_PRIVATE_SIGNATURE \\r
53 )\r
54\r
55EFI_STATUS\r
56EFIAPI\r
57CpuMemoryServiceRead (\r
5161b24d 58 IN EFI_CPU_IO2_PROTOCOL *This,\r
804405e7 59 IN EFI_CPU_IO_PROTOCOL_WIDTH Width,\r
60 IN UINT64 Address,\r
61 IN UINTN Count,\r
62 IN OUT VOID *Buffer\r
63 );\r
64\r
65EFI_STATUS\r
66EFIAPI\r
67CpuMemoryServiceWrite (\r
5161b24d 68 IN EFI_CPU_IO2_PROTOCOL *This,\r
804405e7 69 IN EFI_CPU_IO_PROTOCOL_WIDTH Width,\r
70 IN UINT64 Address,\r
71 IN UINTN Count,\r
72 IN OUT VOID *Buffer\r
73 );\r
74\r
75EFI_STATUS\r
76EFIAPI\r
77CpuIoServiceRead (\r
5161b24d 78 IN EFI_CPU_IO2_PROTOCOL *This,\r
804405e7 79 IN EFI_CPU_IO_PROTOCOL_WIDTH Width,\r
80 IN UINT64 UserAddress,\r
81 IN UINTN Count,\r
82 IN OUT VOID *UserBuffer\r
83 );\r
84\r
85EFI_STATUS\r
86EFIAPI\r
87CpuIoServiceWrite (\r
5161b24d 88 IN EFI_CPU_IO2_PROTOCOL *This,\r
804405e7 89 IN EFI_CPU_IO_PROTOCOL_WIDTH Width,\r
90 IN UINT64 UserAddress,\r
91 IN UINTN Count,\r
92 IN OUT VOID *UserBuffer\r
93 );\r
94\r
95EFI_STATUS\r
96EFIAPI\r
97InitializeCpu (\r
98 IN EFI_HANDLE ImageHandle,\r
99 IN EFI_SYSTEM_TABLE *SystemTable\r
100 );\r
101\r
102EFI_STATUS\r
103EFIAPI\r
104UnixFlushCpuDataCache (\r
105 IN EFI_CPU_ARCH_PROTOCOL *This,\r
106 IN EFI_PHYSICAL_ADDRESS Start,\r
107 IN UINT64 Length,\r
108 IN EFI_CPU_FLUSH_TYPE FlushType\r
109 );\r
110\r
111EFI_STATUS\r
112EFIAPI\r
113UnixEnableInterrupt (\r
114 IN EFI_CPU_ARCH_PROTOCOL *This\r
115 );\r
116\r
117EFI_STATUS\r
118EFIAPI\r
119UnixDisableInterrupt (\r
120 IN EFI_CPU_ARCH_PROTOCOL *This\r
121 );\r
122\r
123EFI_STATUS\r
124EFIAPI\r
125UnixGetInterruptState (\r
126 IN EFI_CPU_ARCH_PROTOCOL *This,\r
127 OUT BOOLEAN *State\r
128 );\r
129\r
130EFI_STATUS\r
131EFIAPI\r
132UnixInit (\r
133 IN EFI_CPU_ARCH_PROTOCOL *This,\r
134 IN EFI_CPU_INIT_TYPE InitType\r
135 );\r
136\r
137EFI_STATUS\r
138EFIAPI\r
139UnixRegisterInterruptHandler (\r
140 IN EFI_CPU_ARCH_PROTOCOL *This,\r
141 IN EFI_EXCEPTION_TYPE InterruptType,\r
142 IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler\r
143 );\r
144\r
145EFI_STATUS\r
146EFIAPI\r
147UnixGetTimerValue (\r
148 IN EFI_CPU_ARCH_PROTOCOL *This,\r
149 IN UINT32 TimerIndex,\r
150 OUT UINT64 *TimerValue,\r
151 OUT UINT64 *TimerPeriod OPTIONAL\r
152 );\r
153\r
154EFI_STATUS\r
155EFIAPI\r
156UnixSetMemoryAttributes (\r
157 IN EFI_CPU_ARCH_PROTOCOL *This,\r
158 IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
159 IN UINT64 Length,\r
160 IN UINT64 Attributes\r
161 );\r
162\r
163#endif\r