AppleUSBHSHubUserClient.h [plain text]
#include <IOKit/IOUserClient.h>
#include "AppleUSBHub.h"
#include "AppleUSBEHCI.h"
enum
{
kAppleUSBHSHubUserClientOpen = 0,
kAppleUSBHSHubUserClientClose,
kAppleUSBHSHubUserClientIsEHCIRootHub,
kAppleUSBHSHubUserClientEnterTestMode,
kAppleUSBHSHubUserClientLeaveTestMode,
kAppleUSBHSHubUserClientGetNumberOfPorts,
kAppleUSBHSHubUserClientPutPortIntoTestMode,
kAppleUSBHSHubUserClientGetLocationID,
kAppleUSBHSHubUserClientSupportsIndicators,
kAppleUSBHSHubUserClientSetIndicatorForPort,
kAppleUSBHSHubUserClientGetPortIndicatorControl,
kAppleUSBHSHubUserClientSetIndicatorsToAutomatic,
kAppleUSBHSHubUserClientGetPowerSwitchingMode,
kAppleUSBHSHubUserClientSetPortPower,
kAppleUSBHSHubUserClientGetPortPower,
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);
IOReturn SupportsIndicators(UInt32 *indicatorSupport);
IOReturn GetPortIndicatorControl(UInt32 portNumber, UInt32 *defaultColor );
IOReturn SetIndicatorForPort(UInt32 portNumber, UInt32 selector );
IOReturn SetIndicatorsToAutomatic();
IOReturn GetPowerSwitchingMode(UInt32 *mode);
IOReturn GetPortPower(UInt32 port, UInt32 *on);
IOReturn SetPortPower(UInt32 port, UInt32 on);
};