3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 UNIX Emulation Architectural Protocol Driver as defined in Tiano.
22 #ifndef _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_
23 #define _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_
27 extern UINT8 CpuStrings
[];
30 // Internal Data Structures
32 #define CPU_ARCH_PROT_PRIVATE_SIGNATURE SIGNATURE_32 ('c', 'a', 'p', 'd')
38 EFI_CPU_ARCH_PROTOCOL Cpu
;
39 EFI_CPU_IO_PROTOCOL CpuIo
;
42 // Local Data for CPU interface goes here
44 BOOLEAN InterruptState
;
46 } CPU_ARCH_PROTOCOL_PRIVATE
;
48 #define CPU_ARCH_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \
50 CPU_ARCH_PROTOCOL_PRIVATE, \
52 CPU_ARCH_PROT_PRIVATE_SIGNATURE \
57 CpuMemoryServiceRead (
58 IN EFI_CPU_IO_PROTOCOL
*This
,
59 IN EFI_CPU_IO_PROTOCOL_WIDTH Width
,
67 CpuMemoryServiceWrite (
68 IN EFI_CPU_IO_PROTOCOL
*This
,
69 IN EFI_CPU_IO_PROTOCOL_WIDTH Width
,
78 IN EFI_CPU_IO_PROTOCOL
*This
,
79 IN EFI_CPU_IO_PROTOCOL_WIDTH Width
,
80 IN UINT64 UserAddress
,
82 IN OUT VOID
*UserBuffer
88 IN EFI_CPU_IO_PROTOCOL
*This
,
89 IN EFI_CPU_IO_PROTOCOL_WIDTH Width
,
90 IN UINT64 UserAddress
,
92 IN OUT VOID
*UserBuffer
98 IN EFI_HANDLE ImageHandle
,
99 IN EFI_SYSTEM_TABLE
*SystemTable
104 UnixFlushCpuDataCache (
105 IN EFI_CPU_ARCH_PROTOCOL
*This
,
106 IN EFI_PHYSICAL_ADDRESS Start
,
108 IN EFI_CPU_FLUSH_TYPE FlushType
113 UnixEnableInterrupt (
114 IN EFI_CPU_ARCH_PROTOCOL
*This
119 UnixDisableInterrupt (
120 IN EFI_CPU_ARCH_PROTOCOL
*This
125 UnixGetInterruptState (
126 IN EFI_CPU_ARCH_PROTOCOL
*This
,
133 IN EFI_CPU_ARCH_PROTOCOL
*This
,
134 IN EFI_CPU_INIT_TYPE InitType
139 UnixRegisterInterruptHandler (
140 IN EFI_CPU_ARCH_PROTOCOL
*This
,
141 IN EFI_EXCEPTION_TYPE InterruptType
,
142 IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler
148 IN EFI_CPU_ARCH_PROTOCOL
*This
,
149 IN UINT32 TimerIndex
,
150 OUT UINT64
*TimerValue
,
151 OUT UINT64
*TimerPeriod OPTIONAL
156 UnixSetMemoryAttributes (
157 IN EFI_CPU_ARCH_PROTOCOL
*This
,
158 IN EFI_PHYSICAL_ADDRESS BaseAddress
,