Available in OS X v10.5 and later.
New in MAC OS X 10.5. The IOKit object representing a hub device on the USB bus. It is a subclass of IOUSBDevice.
With the exception of the IOUSBRootHubDevice objects representing the root hubs, every IOUSBDevice will have an IOUSBHubDevice as its parent in the IOUSB plane. USB KEXT drivers will have the ability to query this device for characteristics of the hub into which they are connected. This class will also give a dive driver the abilty to get an IOService* pointing to the hub driver itself, which can then be used as the parent in the power plane.
returns a bitmap of characteristics
returns characteristics of the hub device which might be useful for the driver of a device connected to the hub. kIOUSBHubDeviceIsRootHub indicates that the hub is a root hub kIOUSBHubDeviceIsOnHighSpeedBus indicates that the hub is running on a High Speed bus. If this bit is set and kIOUSBHubDeviceIsHighSpeed is clear, then this is a Classic Speed hub running on a High Speed bus, which means that Split Transactions will be used to communicate with downstream devices.
the power is returned in milliamps - usually 100ma or 500 ma.
returns the maximum amount of power available on any downstream port of this hub
returns an IOUSBHubPolicyMaker* pointing to the policy maker for this hub. returns NULL is no policy maker is active on the hub device.
returns a pointer to the policy maker for the hub, which can be used as the power plane parent.
- the amount of power requested in milliamps (usually 100ma or 500 ma)
the amount of power allocated for this driver in milliamps (usually 100ma or 500 ma)
requests power from the hub device