AppleIntelICHxSATA.h [plain text]
#ifndef _APPLEINTELICHXSATA_H
#define _APPLEINTELICHXSATA_H
#include "AppleIntelPIIXPATA.h"
#include <IOKit/IOPolledInterface.h>
class AppleIntelICHxSATA : public AppleIntelPIIXPATA
{
OSDeclareDefaultStructors( AppleIntelICHxSATA )
class AppleIntelICHxSATAPolledAdapter* polledAdapter;
protected:
bool _initPortEnable;
virtual IOReturn selectDevice( ataUnitID unit );
virtual void executeEventCallouts( ataEventCode event, ataUnitID unit);
virtual IOReturn startTimer( UInt32 inMS);
virtual void stopTimer( void );
public:
virtual bool start( IOService * provider );
virtual IOReturn provideBusInfo( IOATABusInfo * infoOut );
virtual UInt32 scanForDrives( void );
virtual IOReturn setPowerState( unsigned long stateIndex,
IOService * whatDevice );
public:
void pollEntry( void );
void transitionFixup( void );
};
class AppleIntelICHxSATAPolledAdapter : public IOPolledInterface
{
OSDeclareDefaultStructors(AppleIntelICHxSATAPolledAdapter)
protected:
AppleIntelICHxSATA* owner;
bool pollingActive;
public:
virtual IOReturn probe(IOService * target);
virtual IOReturn open( IOOptionBits state, IOMemoryDescriptor * buffer);
virtual IOReturn close(IOOptionBits state);
virtual IOReturn startIO(uint32_t operation,
uint32_t bufferOffset,
uint64_t deviceOffset,
uint64_t length,
IOPolledCompletion completion) ;
virtual IOReturn checkForWork(void);
bool isPolling( void );
void setOwner( AppleIntelICHxSATA* owner );
};
#endif