Changes in uspace/app/usbinfo/info.c [a12917e:632ed68] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/usbinfo/info.c
ra12917e r632ed68 38 38 #include <errno.h> 39 39 #include <usb/usbdrv.h> 40 #include <usb/pipes.h>41 #include <usb/request.h>42 40 #include "usbinfo.h" 43 41 44 int dump_device( devman_handle_t hc_handle, usb_address_t address)42 int dump_device(int hc_phone, usb_address_t address) 45 43 { 46 int rc;47 usb_device_connection_t wire;48 usb_endpoint_pipe_t ctrl_pipe;49 ctrl_pipe.hc_phone = -1;50 51 int hc_phone = devman_device_connect(hc_handle, 0);52 if (hc_phone < 0) {53 fprintf(stderr,54 NAME ": failed to connect to host controller (%zu): %s.\n",55 (size_t) hc_handle, str_error(hc_phone));56 return hc_phone;57 }58 59 44 /* 60 45 * Dump information about possible match ids. … … 62 47 match_id_list_t match_id_list; 63 48 init_match_ids(&match_id_list); 64 rc = usb_drv_create_device_match_ids(hc_phone, &match_id_list, address);49 int rc = usb_drv_create_device_match_ids(hc_phone, &match_id_list, address); 65 50 if (rc != EOK) { 66 51 fprintf(stderr, 67 52 NAME ": failed to fetch match ids of the device: %s.\n", 68 53 str_error(rc)); 69 goto leave;54 return rc; 70 55 } 71 56 dump_match_ids(&match_id_list); 72 73 /*74 * Initialize pipes.75 */76 rc = usb_device_connection_initialize(&wire, hc_handle, address);77 if (rc != EOK) {78 fprintf(stderr,79 NAME ": failed to create connection to the device: %s.\n",80 str_error(rc));81 goto leave;82 }83 rc = usb_endpoint_pipe_initialize_default_control(&ctrl_pipe, &wire);84 if (rc != EOK) {85 fprintf(stderr,86 NAME ": failed to create default control pipe: %s.\n",87 str_error(rc));88 goto leave;89 }90 rc = usb_endpoint_pipe_start_session(&ctrl_pipe);91 if (rc != EOK) {92 fprintf(stderr,93 NAME ": failed to start session on control pipe: %s.\n",94 str_error(rc));95 goto leave;96 }97 57 98 58 /* … … 100 60 */ 101 61 usb_standard_device_descriptor_t device_descriptor; 102 rc = usb_request_get_device_descriptor(&ctrl_pipe, &device_descriptor); 62 usb_dprintf(NAME, 1, 63 "usb_drv_req_get_device_descriptor(%d, %d, %p)\n", 64 hc_phone, (int) address, &device_descriptor); 65 66 rc = usb_drv_req_get_device_descriptor(hc_phone, address, 67 &device_descriptor); 103 68 if (rc != EOK) { 104 69 fprintf(stderr, 105 70 NAME ": failed to fetch standard device descriptor: %s.\n", 106 71 str_error(rc)); 107 goto leave;72 return rc; 108 73 } 109 74 dump_usb_descriptor((uint8_t *)&device_descriptor, sizeof(device_descriptor)); … … 114 79 usb_standard_configuration_descriptor_t config_descriptor; 115 80 int config_index = 0; 116 rc = usb_request_get_bare_configuration_descriptor(&ctrl_pipe, 117 config_index, &config_descriptor); 81 usb_dprintf(NAME, 1, 82 "usb_drv_req_get_bare_configuration_descriptor(%d, %d, %d, %p)\n", 83 hc_phone, (int) address, config_index, &config_descriptor); 84 85 rc = usb_drv_req_get_bare_configuration_descriptor(hc_phone, address, 86 config_index, &config_descriptor ); 118 87 if (rc != EOK) { 119 88 fprintf(stderr, 120 89 NAME ": failed to fetch standard configuration descriptor: %s.\n", 121 90 str_error(rc)); 122 goto leave;91 return rc; 123 92 } 124 93 //dump_standard_configuration_descriptor(config_index, &config_descriptor); 125 94 126 95 void *full_config_descriptor = malloc(config_descriptor.total_length); 127 rc = usb_request_get_full_configuration_descriptor(&ctrl_pipe, 96 usb_dprintf(NAME, 1, 97 "usb_drv_req_get_full_configuration_descriptor(%d, %d, %d, %p, %zu)\n", 98 hc_phone, (int) address, config_index, 99 full_config_descriptor, config_descriptor.total_length); 100 101 rc = usb_drv_req_get_full_configuration_descriptor(hc_phone, address, 128 102 config_index, 129 103 full_config_descriptor, config_descriptor.total_length, NULL); … … 132 106 NAME ": failed to fetch full configuration descriptor: %s.\n", 133 107 str_error(rc)); 134 goto leave;108 return rc; 135 109 } 136 110 … … 138 112 config_descriptor.total_length); 139 113 140 rc = EOK; 141 leave: 142 /* Ignoring errors here. */ 143 ipc_hangup(hc_phone); 144 usb_endpoint_pipe_end_session(&ctrl_pipe); 145 146 return rc; 114 return EOK; 147 115 } 148 116
Note:
See TracChangeset
for help on using the changeset viewer.