From 3eb9473ea9a949badfe06ae61d2d3fcfa53651c7 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Thu, 28 Jun 2007 07:00:39 +0000 Subject: Add in the 1st version of ECP. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Foundation/Framework/Protocol/CpuIo/CpuIo.c | 28 +++++++ .../Foundation/Framework/Protocol/CpuIo/CpuIo.h | 93 ++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.c create mode 100644 EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.h (limited to 'EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo') diff --git a/EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.c b/EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.c new file mode 100644 index 0000000000..d767a665dc --- /dev/null +++ b/EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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: + + CpuIO.c + +Abstract: + + CPU IO Protocol GUID as defined in Tiano + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (CpuIo) + +EFI_GUID gEfiCpuIoProtocolGuid = EFI_CPU_IO_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiCpuIoProtocolGuid, "CPU IO", "CPU IO Protocol"); diff --git a/EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.h b/EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.h new file mode 100644 index 0000000000..c4944b4368 --- /dev/null +++ b/EdkCompatibilityPkg/Foundation/Framework/Protocol/CpuIo/CpuIo.h @@ -0,0 +1,93 @@ +/*++ + +Copyright (c) 2004, 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: + + CpuIO.h + +Abstract: + + CPU IO Protocol as defined in Tiano + + This code abstracts the CPU IO Protocol + +--*/ + +#ifndef _CPUIO_H_ +#define _CPUIO_H_ + +#define EFI_CPU_IO_PROTOCOL_GUID \ + { \ + 0xB0732526, 0x38C8, 0x4b40, 0x88, 0x77, 0x61, 0xC7, 0xB0, 0x6A, 0xAC, 0x45 \ + } + +EFI_FORWARD_DECLARATION (EFI_CPU_IO_PROTOCOL); + +// +// ******************************************************* +// EFI_CPU_IO_PROTOCOL_WIDTH +// ******************************************************* +// +typedef enum { + EfiCpuIoWidthUint8, + EfiCpuIoWidthUint16, + EfiCpuIoWidthUint32, + EfiCpuIoWidthUint64, + EfiCpuIoWidthFifoUint8, + EfiCpuIoWidthFifoUint16, + EfiCpuIoWidthFifoUint32, + EfiCpuIoWidthFifoUint64, + EfiCpuIoWidthFillUint8, + EfiCpuIoWidthFillUint16, + EfiCpuIoWidthFillUint32, + EfiCpuIoWidthFillUint64, + EfiCpuIoWidthMaximum +} EFI_CPU_IO_PROTOCOL_WIDTH; + +// +// ******************************************************* +// EFI_CPU_IO_PROTOCOL_IO_MEM +// ******************************************************* +// +typedef +EFI_STATUS +EFI_RUNTIMESERVICE +(EFIAPI *EFI_CPU_IO_PROTOCOL_IO_MEM) ( + IN EFI_CPU_IO_PROTOCOL * This, + IN EFI_CPU_IO_PROTOCOL_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN OUT VOID *Buffer + ); + +// +// ******************************************************* +// EFI_CPU_IO_PROTOCOL_ACCESS +// ******************************************************* +// +typedef struct { + EFI_CPU_IO_PROTOCOL_IO_MEM Read; + EFI_CPU_IO_PROTOCOL_IO_MEM Write; +} EFI_CPU_IO_PROTOCOL_ACCESS; + +// +// ******************************************************* +// EFI_CPU_IO_PROTOCOL +// ******************************************************* +// +typedef struct _EFI_CPU_IO_PROTOCOL { + EFI_CPU_IO_PROTOCOL_ACCESS Mem; + EFI_CPU_IO_PROTOCOL_ACCESS Io; +} EFI_CPU_IO_PROTOCOL; + +extern EFI_GUID gEfiCpuIoProtocolGuid; + +#endif -- cgit v1.2.3