4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Support for EFI PCI specification.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials are licensed and made available
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync under the terms and conditions of the BSD License which accompanies this
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync distribution. The full text of the license may be found at:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync File Name: EfiPci.h
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _EFI_PCI_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _EFI_PCI_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//#include "pci22.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//#include "pci23.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//#include "pci30.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack(push, 1)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Register;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Function;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Device;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Bus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved[4];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} DEFIO_PCI_ADDR;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ROOT_BRIDGE_LIST 'eprb'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE 0x0EF1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Signature; // 0xaa55
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 InitializationSize;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 EfiSignature; // 0x0EF1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 EfiSubsystem;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 EfiMachineType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 CompressionType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved[8];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 EfiImageHeaderOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 PcirOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PCI_EXPANSION_ROM_HEADER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef union {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *Raw;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PCI_EXPANSION_ROM_HEADER *Generic;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PCI_EXPANSION_ROM_HEADER *Efi;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PCI_ROM_HEADER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack(pop)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif