1 /*++ 2 3 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 PciCfg2.h 15 16 Abstract: 17 18 PciCfg2 PPI as defined in PI1.0 specification 19 20 Used to access PCI configuration space in PEI 21 22 --*/ 23 24 #ifndef _PEI_PCI_CFG2_H_ 25 #define _PEI_PCI_CFG2_H_ 26 #include "EfiPciCfg.h" 27 28 #define EFI_PEI_PCI_CFG2_PPI_GUID \ 29 { \ 30 0x57a449a, 0x1fdc, 0x4c06, {0xbf, 0xc9, 0xf5, 0x3f, 0x6a, 0x99, 0xbb, 0x92} \ 31 } 32 33 EFI_FORWARD_DECLARATION (EFI_PEI_PCI_CFG2_PPI); 34 35 36 typedef 37 EFI_STATUS 38 (EFIAPI *EFI_PEI_PCI_CFG_PPI_IO) ( 39 IN CONST EFI_PEI_SERVICES **PeiServices, 40 IN CONST EFI_PEI_PCI_CFG2_PPI *This, 41 IN EFI_PEI_PCI_CFG_PPI_WIDTH Width, 42 IN UINT64 Address, 43 IN OUT VOID *Buffer 44 ); 45 46 typedef 47 EFI_STATUS 48 (EFIAPI *EFI_PEI_PCI_CFG_PPI_RW) ( 49 IN CONST EFI_PEI_SERVICES **PeiServices, 50 IN CONST EFI_PEI_PCI_CFG2_PPI *This, 51 IN EFI_PEI_PCI_CFG_PPI_WIDTH Width, 52 IN UINT64 Address, 53 IN VOID *SetBits, 54 IN VOID *ClearBits 55 ); 56 57 struct _EFI_PEI_PCI_CFG2_PPI { 58 EFI_PEI_PCI_CFG_PPI_IO Read; 59 EFI_PEI_PCI_CFG_PPI_IO Write; 60 EFI_PEI_PCI_CFG_PPI_RW Modify; 61 UINT16 Segment; 62 }; 63 64 extern EFI_GUID gPeiPciCfg2PpiGuid; 65 66 #endif 67