.. _dev-table: Device Table ============ The collection of :ref:`devices ` governed by a :ref:`controller ` is referred to as a device table. The :ref:`controller ` is responsible for creating this aggregate and sending it to the computer following a reset. The table consists of an :ref:`addressed ` list of :ref:`device descriptors `. .. list-table:: Example Device Table :header-rows: 1 * - Address - ID - Version - Read Sample Size (bytes) - Write Sample Size (bytes) * - 0.0.0 - 0.0.12 - 1.0 - 8 - 0 * - 0.0.1 - 0.0.27 - 2.0 - 26 - 8 * - 0.1.0 - 0.0.12 - 1.0 - 8 - 0 .. _dev-address: Device Address -------------- Each :ref:`device descriptor ` entry in the device table requires a device address. This is a unique, 32-bit number with the following format: :: Reserved(16-bit).Hub_Index(8-bit).Device_Index(8-bit) * ``Reserved``: Reserved bits. Must be all zeros. * ``Hub_Index``: The index of the :ref:`hub ` within the :ref:`controller ` that the device is managed by. * ``Device_Index``: A unique index of each device within its :ref:`hub `. A valid ``Device_Index`` ranges from 0 to 0xFD. 0xFE is reserved and 0xFF indicates an invalid device.