1 /*++ 2 3 Copyright (c) 2004 - 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 PciCfg.h 15 16 Abstract: 17 18 PciCfg PPI as defined in PEI CIS specification 19 20 Used to access PCI configuration space in PEI 21 22 --*/ 23 24 #ifndef _PEI_PCI_CFG_H_ 25 #define _PEI_PCI_CFG_H_ 26 #include "EfiPciCfg.h" 27 28 #define PEI_PCI_CFG_PPI_GUID \ 29 { \ 30 0xe1f2eba0, 0xf7b9, 0x4a26, {0x86, 0x20, 0x13, 0x12, 0x21, 0x64, 0x2a, 0x90} \ 31 } 32 33 EFI_FORWARD_DECLARATION (PEI_PCI_CFG_PPI); 34 35 36 typedef 37 EFI_STATUS 38 (EFIAPI *PEI_PCI_CFG_PPI_IO) ( 39 IN EFI_PEI_SERVICES **PeiServices, 40 IN PEI_PCI_CFG_PPI * This, 41 IN PEI_PCI_CFG_PPI_WIDTH Width, 42 IN UINT64 Address, 43 IN OUT VOID *Buffer 44 ); 45 46 typedef 47 EFI_STATUS 48 (EFIAPI *PEI_PCI_CFG_PPI_RW) ( 49 IN EFI_PEI_SERVICES **PeiServices, 50 IN PEI_PCI_CFG_PPI * This, 51 IN PEI_PCI_CFG_PPI_WIDTH Width, 52 IN UINT64 Address, 53 IN UINTN SetBits, 54 IN UINTN ClearBits 55 ); 56 57 struct _PEI_PCI_CFG_PPI { 58 PEI_PCI_CFG_PPI_IO Read; 59 PEI_PCI_CFG_PPI_IO Write; 60 PEI_PCI_CFG_PPI_RW Modify; 61 }; 62 63 extern EFI_GUID gPeiPciCfgPpiInServiceTableGuid; 64 65 #endif 66