1 /** @file 2 Support for EFI PCI specification. 3 4 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> 5 6 This program and the accompanying materials are licensed and made available 7 under the terms and conditions of the BSD License which accompanies this 8 distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef _EFI_PCI_H_ 17 #define _EFI_PCI_H_ 18 19 //#include "pci22.h" 20 //#include "pci23.h" 21 //#include "pci30.h" 22 23 #pragma pack(push, 1) 24 25 typedef struct { 26 UINT8 Register; 27 UINT8 Function; 28 UINT8 Device; 29 UINT8 Bus; 30 UINT8 Reserved[4]; 31 } DEFIO_PCI_ADDR; 32 33 #define EFI_ROOT_BRIDGE_LIST 'eprb' 34 #define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE 0x0EF1 35 36 typedef struct { 37 UINT16 Signature; // 0xaa55 38 UINT16 InitializationSize; 39 UINT32 EfiSignature; // 0x0EF1 40 UINT16 EfiSubsystem; 41 UINT16 EfiMachineType; 42 UINT16 CompressionType; 43 UINT8 Reserved[8]; 44 UINT16 EfiImageHeaderOffset; 45 UINT16 PcirOffset; 46 } EFI_PCI_EXPANSION_ROM_HEADER; 47 48 typedef union { 49 UINT8 *Raw; 50 PCI_EXPANSION_ROM_HEADER *Generic; 51 EFI_PCI_EXPANSION_ROM_HEADER *Efi; 52 EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt; 53 } EFI_PCI_ROM_HEADER; 54 55 #pragma pack(pop) 56 57 #endif 58