X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=EdkUnixPkg%2FDxe%2FUnixThunk%2FCpu%2FCpuDriver.h;fp=EdkUnixPkg%2FDxe%2FUnixThunk%2FCpu%2FCpuDriver.h;h=3a838a0c7f27a08f9f15bbe05821db71e430e407;hb=c9093a06e72ef16d2f3bd7ce0a2b9a172e9d048c;hp=0000000000000000000000000000000000000000;hpb=8ba7afaf2e9c682a5d17760e6dd5463b3a2b2d67;p=mirror_edk2.git diff --git a/EdkUnixPkg/Dxe/UnixThunk/Cpu/CpuDriver.h b/EdkUnixPkg/Dxe/UnixThunk/Cpu/CpuDriver.h new file mode 100644 index 0000000000..3a838a0c7f --- /dev/null +++ b/EdkUnixPkg/Dxe/UnixThunk/Cpu/CpuDriver.h @@ -0,0 +1,96 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + CpuDriver.h + +Abstract: + + NT Emulation Architectural Protocol Driver as defined in Tiano. + +--*/ + +#ifndef _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_ +#define _CPU_ARCHITECTURAL_PROTOCOL_DRIVER_H_ + + + +extern UINT8 STRING_ARRAY_NAME[]; + +// +// Internal Data Structures +// +#define CPU_ARCH_PROT_PRIVATE_SIGNATURE EFI_SIGNATURE_32 ('c', 'a', 'p', 'd') + +typedef struct { + UINTN Signature; + EFI_HANDLE Handle; + + EFI_CPU_ARCH_PROTOCOL Cpu; + EFI_CPU_IO_PROTOCOL CpuIo; + + // + // Local Data for CPU interface goes here + // + BOOLEAN InterruptState; + +} CPU_ARCH_PROTOCOL_PRIVATE; + +#define CPU_ARCH_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \ + CR (a, \ + CPU_ARCH_PROTOCOL_PRIVATE, \ + Cpu, \ + CPU_ARCH_PROT_PRIVATE_SIGNATURE \ + ) + +EFI_STATUS +EFIAPI +CpuMemoryServiceRead ( + IN EFI_CPU_IO_PROTOCOL *This, + IN EFI_CPU_IO_PROTOCOL_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN OUT VOID *Buffer + ); + +EFI_STATUS +EFIAPI +CpuMemoryServiceWrite ( + IN EFI_CPU_IO_PROTOCOL *This, + IN EFI_CPU_IO_PROTOCOL_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN OUT VOID *Buffer + ); + +EFI_STATUS +EFIAPI +CpuIoServiceRead ( + IN EFI_CPU_IO_PROTOCOL *This, + IN EFI_CPU_IO_PROTOCOL_WIDTH Width, + IN UINT64 UserAddress, + IN UINTN Count, + IN OUT VOID *UserBuffer + ); + +EFI_STATUS +EFIAPI +CpuIoServiceWrite ( + IN EFI_CPU_IO_PROTOCOL *This, + IN EFI_CPU_IO_PROTOCOL_WIDTH Width, + IN UINT64 UserAddress, + IN UINTN Count, + IN OUT VOID *UserBuffer + ); + + +#endif