KolibriOS kernel
usb_hub Struct Reference

============================================================================= More...

Public Attributes

dd Next
dd Prev
dd Controller
dd ConfigPipe
dd StatusPipe
dd NumPorts
dd MaxPacketSize
dd Actions
dd PoweredOnTime
dd ResetTime
rb ConfigBuffer
rb ChangeConfigBuffer
db AccStatusChange
dw HubCharacteristics
db PowerOnInterval
dw StatusData
dw StatusChange
dw ResetStatusData
dw ResetStatusChange
dd StatusChangePtr
dd ConnectedDevicesPtr
dd ConnectedTimePtr

Detailed Description


================================ Structures =================================

This structure contains all used data for one hub.


Member Data Documentation

◆ AccStatusChange

db usb_hub::AccStatusChange

Buffer for configuration requests for status changes.

◆ Actions

dd usb_hub::Actions

Maximum packet size for interrupt endpoint. Usually equals ceil((1+NumPorts)/8), but some hubs give additional bytes.

◆ ChangeConfigBuffer

rb usb_hub::ChangeConfigBuffer

Buffer for configuration requests for synchronous events.

◆ ConfigBuffer

rb usb_hub::ConfigBuffer

Time (in ticks) when the current port was reset; when a port is resetting, contains the last tick of status check; when reset recovery for a port is active, contains the time when reset was completed.

There are two possible reasons for configuration requests: synchronous, when certain time is passed after something, and asynchronous, when the hub is notifying about some change and config request needs to be issued in order to query details. Use two different buffers to avoid unnecessary dependencies.

◆ ConfigPipe

dd usb_hub::ConfigPipe

Pointer to usb_controller for the bus.

Handles of two pipes: configuration control pipe for zero endpoint opened by the common code and status interrupt pipe opened by us.

◆ ConnectedDevicesPtr

dd usb_hub::ConnectedDevicesPtr

Pointer to StatusChangeBuf.

◆ ConnectedTimePtr

dd usb_hub::ConnectedTimePtr

Pointer to ConnectedDevices.

◆ Controller

dd usb_hub::Controller

◆ HubCharacteristics

dw usb_hub::HubCharacteristics

Accumulated status change. See 11.12.3 of USB2 spec or comments in code.

◆ MaxPacketSize

dd usb_hub::MaxPacketSize

Number of downstream ports; from 1 to 255.

◆ Next

dd usb_hub::Next

All configured hubs are organized in the global usb_hub_list. Two following fields give next/prev items in that list. While the hub is unconfigured, they point to usb_hub itself.

◆ NumPorts

dd usb_hub::NumPorts

◆ PoweredOnTime

dd usb_hub::PoweredOnTime

Bitfield with HUB_* constants.

◆ PowerOnInterval

db usb_hub::PowerOnInterval

◆ Prev

dd usb_hub::Prev

◆ ResetStatusChange

dw usb_hub::ResetStatusChange

◆ ResetStatusData

dw usb_hub::ResetStatusData

Bitfield with 1 shl PORT_* indicating change in status of the current port. Two following fields are written at once by GET_STATUS request and must remain in this order. The meaning is the same as of StatusData/StatusChange; two following fields are used by the synchronous requests to avoid unnecessary interactions with the asynchronous handler.

◆ ResetTime

dd usb_hub::ResetTime

Time (in ticks) when all downstream ports were powered up.

◆ StatusChange

dw usb_hub::StatusChange

Bitfield with 1 shl PORT_* indicating status of the current port.

◆ StatusChangePtr

dd usb_hub::StatusChangePtr

◆ StatusData

dw usb_hub::StatusData

Copy of usb_hub_descr.bPwrOn2PwrGood.

Two following fields are written at once by GET_STATUS request and must remain in this order.

◆ StatusPipe

dd usb_hub::StatusPipe

The documentation for this struct was generated from the following file: