10#ifndef _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_
11#define _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_
30#include <Library/EmuThunkLib.h>
37#define CPU_ARCH_PROT_PRIVATE_SIGNATURE SIGNATURE_32 ('c', 'a', 'p', 'd')
49 BOOLEAN InterruptState;
52#define CPU_ARCH_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \
54 CPU_ARCH_PROTOCOL_PRIVATE, \
56 CPU_ARCH_PROT_PRIVATE_SIGNATURE \
76 PROCESSOR_STATE State;
84 UINTN NumberOfProcessors;
85 UINTN NumberOfEnabledProcessors;
91 VOID *ProcedureArgument;
97 UINTN FailedListIndex;
98 BOOLEAN TimeoutActive;
126 IN UINT64 UserAddress,
128 IN OUT VOID *UserBuffer
136 IN UINT64 UserAddress,
138 IN OUT VOID *UserBuffer
150EmuFlushCpuDataCache (
171EmuGetInterruptState (
185EmuRegisterInterruptHandler (
195 IN UINT32 TimerIndex,
196 OUT UINT64 *TimerValue,
197 OUT UINT64 *TimerPeriod OPTIONAL
202EmuSetMemoryAttributes (
STATIC EFI_STATUS EFIAPI CpuMemoryServiceRead(IN EFI_CPU_IO2_PROTOCOL *This, IN EFI_CPU_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, OUT VOID *Buffer)
STATIC EFI_STATUS EFIAPI CpuIoServiceWrite(IN EFI_CPU_IO2_PROTOCOL *This, IN EFI_CPU_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, IN VOID *Buffer)
STATIC EFI_STATUS EFIAPI CpuMemoryServiceWrite(IN EFI_CPU_IO2_PROTOCOL *This, IN EFI_CPU_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, IN VOID *Buffer)
STATIC EFI_STATUS EFIAPI CpuIoServiceRead(IN EFI_CPU_IO2_PROTOCOL *This, IN EFI_CPU_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, OUT VOID *Buffer)
VOID(EFIAPI * EFI_CPU_INTERRUPT_HANDLER)(IN CONST EFI_EXCEPTION_TYPE InterruptType, IN CONST EFI_SYSTEM_CONTEXT SystemContext)
EFI_CPU_IO_PROTOCOL_WIDTH
VOID(EFIAPI * EFI_AP_PROCEDURE)(IN OUT VOID *Buffer)
UINT64 EFI_PHYSICAL_ADDRESS