Changes in / [e18e0d6:538bb6b] in mainline
- Location:
- uspace
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/usbinfo/info.c
re18e0d6 r538bb6b 294 294 } 295 295 296 297 void dump_status(usbinfo_device_t *dev) 298 { 299 int rc; 300 uint16_t device_status = 0; 301 uint16_t ctrl_pipe_status = 0; 302 303 /* Device status first. */ 304 rc = usb_request_get_status(&dev->ctrl_pipe, 305 USB_REQUEST_RECIPIENT_DEVICE, 0, 306 &device_status); 307 if (rc != EOK) { 308 printf("%sFailed to get device status: %s.\n", 309 get_indent(0), str_error(rc)); 310 goto try_ctrl_pipe_status; 311 } 312 313 printf("%sDevice status 0x%04x: power=%s, remote-wakeup=%s.\n", 314 get_indent(0), 315 device_status, 316 device_status & USB_DEVICE_STATUS_SELF_POWERED ? "self" : "bus", 317 device_status & USB_DEVICE_STATUS_REMOTE_WAKEUP ? "yes" : "no"); 318 319 /* Interface is not interesting, skipping ;-). */ 320 321 /* Control endpoint zero. */ 322 try_ctrl_pipe_status: 323 rc = usb_request_get_status(&dev->ctrl_pipe, 324 USB_REQUEST_RECIPIENT_ENDPOINT, 0, 325 &ctrl_pipe_status); 326 if (rc != EOK) { 327 printf("%sFailed to get control endpoint status: %s.\n", 328 get_indent(0), str_error(rc)); 329 goto leave; 330 } 331 332 printf("%sControl endpoint zero status %04X: halted=%s.\n", 333 get_indent(0), 334 ctrl_pipe_status, 335 ctrl_pipe_status & USB_ENDPOINT_STATUS_HALTED ? "yes" : "no"); 336 337 leave: 338 return; 339 } 340 296 341 /** @} 297 342 */ -
uspace/app/usbinfo/main.c
re18e0d6 r538bb6b 136 136 _OPTION("-T --descriptor-tree-full", "Print detailed descriptor tree"); 137 137 _OPTION("-s --strings", "Try to print all string descriptors."); 138 _OPTION("-S --status", "Get status of the device."); 138 139 139 140 printf("\n"); … … 152 153 {"descriptor-tree-full", no_argument, NULL, 'T'}, 153 154 {"strings", no_argument, NULL, 's'}, 155 {"status", no_argument, NULL, 'S'}, 154 156 {0, 0, NULL, 0} 155 157 }; 156 static const char *short_options = "himtTs ";158 static const char *short_options = "himtTsS"; 157 159 158 160 static usbinfo_action_t actions[] = { … … 180 182 .opt = 's', 181 183 .action = dump_strings, 184 .active = false 185 }, 186 { 187 .opt = 'S', 188 .action = dump_status, 182 189 .active = false 183 190 }, -
uspace/app/usbinfo/usbinfo.h
re18e0d6 r538bb6b 84 84 void dump_descriptor_tree_full(usbinfo_device_t *); 85 85 void dump_strings(usbinfo_device_t *); 86 void dump_status(usbinfo_device_t *); 86 87 87 88 -
uspace/lib/usb/include/usb/request.h
re18e0d6 r538bb6b 41 41 #include <usb/pipes.h> 42 42 #include <usb/descriptor.h> 43 44 /** USB device status - device is self powered (opposed to bus powered). */ 45 #define USB_DEVICE_STATUS_SELF_POWERED ((uint16_t)(1 << 0)) 46 47 /** USB device status - remote wake-up signaling is enabled. */ 48 #define USB_DEVICE_STATUS_REMOTE_WAKEUP ((uint16_t)(1 << 1)) 49 50 /** USB endpoint status - endpoint is halted (stalled). */ 51 #define USB_ENDPOINT_STATUS_HALTED ((uint16_t)(1 << 0)) 43 52 44 53 /** Standard device request. */
Note:
See TracChangeset
for help on using the changeset viewer.