2 This PPI is the same as the PPI in the framework PciCfg, with one exception: this PPI does not include a modify API, while the PPI in the framework PciCfg does.
4 Copyright (c) 2008 - 2009, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef _PEI_PCI_CFG_H_
16 #define _PEI_PCI_CFG_H_
18 #include <Ppi/PciCfg.h>
20 #define ECP_PEI_PCI_CFG_PPI_GUID \
21 {0xb0ee53d4, 0xa049, 0x4a79, { 0xb2, 0xff, 0x19, 0xd9, 0xfa, 0xef, 0xaa, 0x94}}
23 typedef struct _ECP_PEI_PCI_CFG_PPI ECP_PEI_PCI_CFG_PPI
;
26 PCI read and write operation.
28 Writes to or reads from a given location in the PCI configuration space.
30 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
31 @param This Pointer to local data for the interface.
32 @param Width The width of the access. Enumerated in bytes.
33 @param Address The physical address of the access. The format of
34 the address is described by EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS.
35 @param Buffer A pointer to the buffer of data.
36 @retval EFI_SUCCESS The function completed successfully.
37 @retval EFI_DEVICE_ERROR There was a problem with the transaction.
38 @retval EFI_DEVICE_NOT_READY The device is not capable of supporting the operation at this time.
42 (EFIAPI
*ECP_PEI_PCI_CFG_PPI_IO
) (
43 IN EFI_PEI_SERVICES
**PeiServices
,
44 IN EFI_PEI_PCI_CFG_PPI
* This
,
45 IN EFI_PEI_PCI_CFG_PPI_WIDTH Width
,
50 struct _ECP_PEI_PCI_CFG_PPI
{
51 ECP_PEI_PCI_CFG_PPI_IO Read
;
52 ECP_PEI_PCI_CFG_PPI_IO Write
;
55 extern EFI_GUID gEcpPeiPciCfgPpiGuid
;