]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Ppi / PciCfg2 / PciCfg2.h
1 /*++
2
3 Copyright (c) 2007, Intel Corporation
4 All rights reserved. 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 typedef 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 } EFI_PEI_PCI_CFG2_PPI;
63
64 extern EFI_GUID gPeiPciCfg2PpiGuid;
65
66 #endif