#ifndef _IOKIT_IOPCIPRIVATE_H
#define _IOKIT_IOPCIPRIVATE_H
#include <IOKit/pci/IOPCIDevice.h>
enum
{
kIOPCIConfigShadowSize = 64 + 8,
kIOPCIConfigShadowMSI = kIOPCIConfigShadowSize - 8,
kIOPCIConfigShadowRegs = 16,
kIOPCIVolatileRegsMask = ((1 << kIOPCIConfigShadowRegs) - 1)
& ~(1 << (kIOPCIConfigVendorID >> 2))
& ~(1 << (kIOPCIConfigRevisionID >> 2))
& ~(1 << (kIOPCIConfigSubSystemVendorID >> 2))
};
struct IOPCIConfigShadow
{
UInt32 savedConfig[kIOPCIConfigShadowSize];
UInt32 flags;
queue_chain_t link;
IOPCIDevice * device;
};
#define configShadow(device) ((IOPCIConfigShadow *) &device->savedConfig[0])
enum
{
kIOPCIConfigShadowValid = 0x00000001,
kIOPCIConfigShadowBridge = 0x00000002
};
enum
{
kSaveDeviceState = 0,
kRestoreDeviceState = 1,
kSaveBridgeState = 2,
kRestoreBridgeState = 3
};
#define kIOPCIEjectableKey "IOPCIEjectable"
#define kIOPCIHotPlugKey "IOPCIHotPlug"
#define kIOPCIOnlineKey "IOPCIOnline"
#define kIOPCIConfiguredKey "IOPCIConfigured"
#define kIOPCIResourcedKey "IOPCIResourced"
#ifndef kACPIDevicePathKey
#define kACPIDevicePathKey "acpi-path"
#endif
#ifndef kPCIInterruptRoutingTableKey
#define kPCIInterruptRoutingTableKey "acpi-pci-routing-table"
#endif
extern const IORegistryPlane * gIOPCIACPIPlane;
enum
{
kIOPCIProbeOptionEject = 0x00100000
};
#endif