diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Framework/Protocol/CpuIo | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Framework/Protocol/CpuIo')
-rw-r--r-- | EDK/Foundation/Framework/Protocol/CpuIo/CpuIo.c | 28 | ||||
-rw-r--r-- | EDK/Foundation/Framework/Protocol/CpuIo/CpuIo.h | 93 |
2 files changed, 121 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Protocol/CpuIo/CpuIo.c b/EDK/Foundation/Framework/Protocol/CpuIo/CpuIo.c new file mode 100644 index 0000000..f3044b3 --- /dev/null +++ b/EDK/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/EDK/Foundation/Framework/Protocol/CpuIo/CpuIo.h b/EDK/Foundation/Framework/Protocol/CpuIo/CpuIo.h new file mode 100644 index 0000000..1e8fb70 --- /dev/null +++ b/EDK/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 |