IOUSBRootHubDevice.h [plain text]
#ifndef _IOKIT_IOUSBROOTHUBDEVICE_H
#define _IOKIT_IOUSBROOTHUBDEVICE_H
#include <IOKit/usb/IOUSBDevice.h>
#include <IOKit/usb/IOUSBController.h>
#include <IOKit/usb/USBHub.h>
#define kAppleCurrentAvailable "AAPL,current-available"
typedef struct AppleRootHubExtraPowerRequest
{
SInt32 requestedExtraPower; UInt32 extraPowerAvailable; } AppleRootHubExtraPowerRequest;
class IOUSBRootHubDevice : public IOUSBDevice
{
OSDeclareDefaultStructors(IOUSBRootHubDevice)
UInt16 configuration;
struct ExpansionData {
IOCommandGate *_commandGate;
};
ExpansionData *_expansionData;
public:
static IOUSBRootHubDevice *NewRootHubDevice(void);
static IOReturn GatedDeviceRequest (OSObject * owner,
void * arg0,
void * arg1,
void * arg2,
void * arg3 );
virtual bool init();
virtual bool start( IOService * provider );
virtual void stop( IOService *provider );
virtual void free();
virtual IOReturn message( UInt32 type, IOService * provider, void * argument = 0 );
IOReturn DeviceRequestWorker(IOUSBDevRequest *request, UInt32 noDataTimeout, UInt32 completionTimeout, IOUSBCompletion *completion);
virtual IOReturn DeviceRequest(IOUSBDevRequest *request, IOUSBCompletion *completion = 0);
OSMetaClassDeclareReservedUsed(IOUSBRootHubDevice, 0);
virtual IOReturn DeviceRequest(IOUSBDevRequest *request, UInt32 noDataTimeout, UInt32 completionTimeout, IOUSBCompletion *completion = 0);
OSMetaClassDeclareReservedUnused(IOUSBRootHubDevice, 1);
OSMetaClassDeclareReservedUnused(IOUSBRootHubDevice, 2);
OSMetaClassDeclareReservedUnused(IOUSBRootHubDevice, 3);
OSMetaClassDeclareReservedUnused(IOUSBRootHubDevice, 4);
};
#endif