AppleUSBHSHubUserClient.h [plain text]
#include <IOKit/IOUserClient.h>
#include "AppleUSBHub.h"
#include "AppleUSBEHCI.h"
enum
{
kAppleUSBHSHubUserClientOpen = 0,
kAppleUSBHSHubUserClientClose,
kAppleUSBHSHubUserClientIsEHCIRootHub,
kAppleUSBHSHubUserClientEnterTestMode,
kAppleUSBHSHubUserClientLeaveTestMode,
kAppleUSBHSHubUserClientGetNumberOfPorts,
kAppleUSBHSHubUserClientPutPortIntoTestMode,
kAppleUSBHSHubUserClientGetLocationID,
kNumUSBHSHubMethods
};
class AppleUSBHSHubUserClient : public IOUserClient
{
OSDeclareDefaultStructors(AppleUSBHSHubUserClient)
private:
AppleUSBHub * fOwner;
task_t fTask;
const IOExternalMethod * fMethods;
IOCommandGate * fGate;
UInt32 fNumMethods;
mach_port_t fWakePort;
bool fDead;
static const IOExternalMethod sMethods[kNumUSBHSHubMethods];
static const IOItemCount sMethodCount;
virtual void SetExternalMethodVectors(void);
virtual IOReturn open(bool seize);
virtual IOReturn close(void);
virtual bool start( IOService * provider );
virtual void stop( IOService * provider );
virtual bool initWithTask( task_t owningTask, void * securityID, UInt32 type, OSDictionary * properties );
virtual IOExternalMethod * getTargetAndMethodForIndex(IOService **target, UInt32 index);
virtual IOReturn clientClose( void );
IOReturn IsEHCIRootHub(UInt32 *ret);
IOReturn EnterTestMode(void);
IOReturn LeaveTestMode(void);
IOReturn GetNumberOfPorts(UInt32 *numPorts);
IOReturn PutPortIntoTestMode(UInt32 port, UInt32 mode);
IOReturn GetLocationID(UInt32 *locID);
};