/** @file
  GUID and data structure used to describe the list of PCI Option ROMs present in a system.
  
Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials                          
are licensed and made available under the terms and conditions of the BSD License         
which accompanies this distribution.  The full text of the license may be found at        
http://opensource.org/licenses/bsd-license.php                                            
                                                                                          
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             

**/

#ifndef __PCI_OPTION_ROM_TABLE_GUID_H_
#define __PCI_OPTION_ROM_TABLE_GUID_H_

#define EFI_PCI_OPTION_ROM_TABLE_GUID \
  { 0x7462660f, 0x1cbd, 0x48da, {0xad, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1c } }

extern EFI_GUID gEfiPciOptionRomTableGuid;

typedef struct {
  EFI_PHYSICAL_ADDRESS   RomAddress; 
  EFI_MEMORY_TYPE        MemoryType;
  UINT32                 RomLength; 
  UINT32                 Seg; 
  UINT8                  Bus; 
  UINT8                  Dev; 
  UINT8                  Func; 
  BOOLEAN                ExecutedLegacyBiosImage; 
  BOOLEAN                DontLoadEfiRom;
} EFI_PCI_OPTION_ROM_DESCRIPTOR;

typedef struct {
  UINT64                         PciOptionRomCount;
  EFI_PCI_OPTION_ROM_DESCRIPTOR   *PciOptionRomDescriptors;
} EFI_PCI_OPTION_ROM_TABLE;

#endif // __PCI_OPTION_ROM_TABLE_GUID_H_