#ifndef _IOKIT_APPLEI386PCI_H
#define _IOKIT_APPLEI386PCI_H
#include <IOKit/pci/IOPCIBridge.h>
class AppleI386PCI : public IOPCIBridge
{
OSDeclareDefaultStructors(AppleI386PCI)
IOSimpleLock * lock;
IODeviceMemory * ioMemory;
UInt8 maxBusNum;
UInt8 maxDevNum;
bool BIOS16Present;
bool configMethod1;
bool configMethod2;
bool specialCycle1;
bool specialCycle2;
bool BIOS32Present;
void *BIOS32Entry;
int majorVersion;
int minorVersion;
private:
virtual UInt32 configRead32Method1( IOPCIAddressSpace space,
UInt8 offset );
virtual void configWrite32Method1( IOPCIAddressSpace space,
UInt8 offset, UInt32 data );
virtual UInt16 configRead16Method1( IOPCIAddressSpace space,
UInt8 offset );
virtual void configWrite16Method1( IOPCIAddressSpace space,
UInt8 offset, UInt16 data );
virtual UInt8 configRead8Method1( IOPCIAddressSpace space,
UInt8 offset );
virtual void configWrite8Method1( IOPCIAddressSpace space,
UInt8 offset, UInt8 data );
virtual UInt32 configRead32Method2( IOPCIAddressSpace space,
UInt8 offset );
virtual void configWrite32Method2( IOPCIAddressSpace space,
UInt8 offset, UInt32 data );
virtual UInt16 configRead16Method2( IOPCIAddressSpace space,
UInt8 offset );
virtual void configWrite16Method2( IOPCIAddressSpace space,
UInt8 offset, UInt16 data );
virtual UInt8 configRead8Method2( IOPCIAddressSpace space,
UInt8 offset );
virtual void configWrite8Method2( IOPCIAddressSpace space,
UInt8 offset, UInt8 data );
virtual IOPCIAddressSpace getBridgeSpace( void );
protected:
virtual UInt8 firstBusNum( void );
virtual UInt8 lastBusNum( void );
public:
virtual bool start( IOService * provider );
virtual bool configure( IOService * provider );
virtual void free();
virtual IODeviceMemory * ioDeviceMemory( void );
virtual UInt32 configRead32( IOPCIAddressSpace space, UInt8 offset );
virtual void configWrite32( IOPCIAddressSpace space,
UInt8 offset, UInt32 data );
virtual UInt16 configRead16( IOPCIAddressSpace space, UInt8 offset );
virtual void configWrite16( IOPCIAddressSpace space,
UInt8 offset, UInt16 data );
virtual UInt8 configRead8( IOPCIAddressSpace space, UInt8 offset );
virtual void configWrite8( IOPCIAddressSpace space,
UInt8 offset, UInt8 data );
};
#endif