#ifndef _IOKIT_APPLEI386AGP_H
#define _IOKIT_APPLEI386AGP_H
#include <IOKit/pci/IOPCIBridge.h>
class AppleI386AGP : public IOPCI2PCIBridge
{
OSDeclareDefaultStructors(AppleI386AGP)
protected:
IORangeAllocator * agpRange;
UInt32 agpBaseIndex;
IOPhysicalAddress systemBase;
IOPhysicalLength systemLength;
volatile UInt32 * gartArray;
IOByteCount gartLength;
UInt32 gartPhys;
UInt32 gartCtrl;
UInt32 agpCommandMask;
UInt8 targetAGPRegisters;
private:
virtual IOReturn setAGPEnable( IOAGPDevice * master, bool enable,
IOOptionBits options = 0 );
public:
virtual bool start( IOService * provider );
virtual bool configure( IOService * provider );
virtual IOPCIAddressSpace getBridgeSpace( void );
virtual IOPCIDevice * createNub( OSDictionary * from );
virtual IOReturn createAGPSpace( IOAGPDevice * master,
IOOptionBits options,
IOPhysicalAddress * address,
IOPhysicalLength * length );
virtual IOReturn destroyAGPSpace( IOAGPDevice * master );
virtual IORangeAllocator * getAGPRangeAllocator( IOAGPDevice * master );
virtual IOOptionBits getAGPStatus( IOAGPDevice * master,
IOOptionBits options = 0 );
virtual IOReturn resetAGPDevice( IOAGPDevice * master,
IOOptionBits options = 0 );
virtual IOReturn getAGPSpace( IOAGPDevice * master,
IOPhysicalAddress * address,
IOPhysicalLength * length );
virtual IOReturn commitAGPMemory( IOAGPDevice * master,
IOMemoryDescriptor * memory,
IOByteCount agpOffset,
IOOptionBits options = 0 );
virtual IOReturn releaseAGPMemory( IOAGPDevice * master,
IOMemoryDescriptor * memory,
IOByteCount agpOffset,
IOOptionBits options = 0 );
};
#endif