Changeset 2c5cefa in mainline for uspace/app/usbinfo/main.c


Ignore:
Timestamp:
2010-12-09T14:25:39Z (15 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
99ea659c
Parents:
f5e39475
Message:

Add retrieval of configuration descriptor

The `usbinfo' app displays configuration descriptor as well.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/usbinfo/main.c

    rf5e39475 r2c5cefa  
    107107         */
    108108        usb_standard_device_descriptor_t device_descriptor;
    109         usb_dprintf("usbinfo", 1,
     109        usb_dprintf(NAME, 1,
    110110            "usb_drv_req_get_device_descriptor(%d, %d, %p)\n",
    111111            hc_phone, (int) address, &device_descriptor);
     
    121121        dump_standard_device_descriptor(&device_descriptor);
    122122
     123        /*
     124         * Get first configuration descriptor and dump it.
     125         */
     126        usb_standard_configuration_descriptor_t config_descriptor;
     127        int config_index = 0;
     128        usb_dprintf(NAME, 1,
     129            "usb_drv_req_get_bare_configuration_descriptor(%d, %d, %d, %p)\n",
     130            hc_phone, (int) address, config_index, &config_descriptor);
     131
     132        rc = usb_drv_req_get_bare_configuration_descriptor(hc_phone, address,
     133            config_index, &config_descriptor );
     134        if (rc != EOK) {
     135                fprintf(stderr,
     136                    NAME ": failed to fetch standard configuration descriptor: %s.\n",
     137                    str_error(rc));
     138                return rc;
     139        }
     140        dump_standard_configuration_descriptor(config_index,
     141            &config_descriptor);
     142
     143        void *full_config_descriptor = malloc(config_descriptor.total_length);
     144        usb_dprintf(NAME, 1,
     145            "usb_drv_req_get_full_configuration_descriptor(%d, %d, %d, %p, %zu)\n",
     146            hc_phone, (int) address, config_index,
     147            full_config_descriptor, config_descriptor.total_length);
     148
     149        rc = usb_drv_req_get_full_configuration_descriptor(hc_phone, address,
     150            config_index,
     151            full_config_descriptor, config_descriptor.total_length, NULL);
     152        if (rc != EOK) {
     153                fprintf(stderr,
     154                    NAME ": failed to fetch full configuration descriptor: %s.\n",
     155                    str_error(rc));
     156                return rc;
     157        }
     158        dump_buffer("Full configuration descriptor:",
     159            full_config_descriptor, config_descriptor.total_length);
    123160
    124161        return EOK;
Note: See TracChangeset for help on using the changeset viewer.