1 /** @file
2   This code abstracts the CPU IO Protocol which installed by some platform or chipset-specific
3   PEIM that abstracts the processor-visible I/O operations.
4 
5   Note: This is a runtime protocol and can be used by runtime drivers after ExitBootServices().
6   It is different from the PI 1.2 CPU I/O 2 Protocol, which is a boot services only protocol
7   and may not be used by runtime drivers after ExitBootServices().
8 
9 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
10 This program and the accompanying materials are licensed and made available under
11 the terms and conditions of the BSD License that accompanies this distribution.
12 The full text of the license may be found at
13 http://opensource.org/licenses/bsd-license.php.
14 
15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 
18   @par Revision Reference:
19   CPU IO Protocol is defined in Framework of EFI CPU IO Protocol Spec
20   Version 0.9.
21 
22 **/
23 
24 #ifndef _CPUIO_H_
25 #define _CPUIO_H_
26 
27 #include <Protocol/CpuIo2.h>
28 
29 #define EFI_CPU_IO_PROTOCOL_GUID \
30   { \
31     0xB0732526, 0x38C8, 0x4b40, {0x88, 0x77, 0x61, 0xC7, 0xB0, 0x6A, 0xAC, 0x45 } \
32   }
33 
34 //
35 // Framework CPU IO protocol structure is the same as CPU IO 2 protocol defined in PI 1.2 spec.
36 // However, there is a significant different between the Framework CPU I/O
37 // Protocol and the PI 1.2 CPU I/O 2 Protocol.  The Framework one is a runtime
38 // protocol, which means it can be used by runtime drivers after ExitBootServices().
39 // The PI one is not runtime safe, so it is a boot services only protocol and may
40 // not be used by runtime drivers after ExitBootServices().
41 //
42 typedef EFI_CPU_IO2_PROTOCOL EFI_CPU_IO_PROTOCOL;
43 
44 extern EFI_GUID gEfiCpuIoProtocolGuid;
45 
46 #endif
47