#ifndef _IOKIT_APPLEGRACKLEPCI_H
#define _IOKIT_APPLEGRACKLEPCI_H
#include <IOKit/pci/IOPCIBridge.h>
enum {
kBridgeSelfDevice = 0
};
class AppleGracklePCI : public IOPCIBridge
{
OSDeclareDefaultStructors(AppleGracklePCI)
protected:
IOSimpleLock * lock;
IODeviceMemory * ioMemory;
IOMemoryMap * configAddrMap;
IOMemoryMap * configDataMap;
volatile UInt32 * configAddr;
volatile UInt8 * configData;
UInt8 primaryBus;
inline void setConfigSpace( IOPCIAddressSpace space, UInt8 offset );
virtual UInt8 firstBusNum( void );
virtual UInt8 lastBusNum( void );
IOReturn accessMPC106PerformanceRegister(bool write, long regNumber,
unsigned long *data);
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 );
virtual IOPCIAddressSpace getBridgeSpace( void );
virtual IOReturn callPlatformFunction(const OSSymbol *functionName,
bool waitForFunction,
void *param1, void *param2,
void *param3, void *param4);
};
#define kMPC106CMDR0 (0x048)
#define kMPC106MMCR0 (0x04C)
#define kMPC106PMC0 (0x050)
#define kMPC106PMC1 (0x054)
#define kMPC106PMC2 (0x058)
#define kMPC106PMC3 (0x05C)
#endif