Ignore:
File:
1 edited

Legend:

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

    rc82135a8 rdf0bbe1  
    4545#include <usb/usbdevice.h>
    4646#include <usb/pipes.h>
     47#include <usb/host.h>
    4748#include "usbinfo.h"
     49
     50static bool try_parse_class_and_address(const char *path,
     51    devman_handle_t *out_hc_handle, usb_address_t *out_device_address)
     52{
     53        size_t class_index;
     54        size_t address;
     55        int rc;
     56        char *ptr;
     57
     58        rc = str_size_t(path, &ptr, 10, false, &class_index);
     59        if (rc != EOK) {
     60                return false;
     61        }
     62        if ((*ptr == ':') || (*ptr == '.')) {
     63                ptr++;
     64        } else {
     65                return false;
     66        }
     67        rc = str_size_t(ptr, NULL, 10, true, &address);
     68        if (rc != EOK) {
     69                return false;
     70        }
     71        rc = usb_ddf_get_hc_handle_by_class(class_index, out_hc_handle);
     72        if (rc != EOK) {
     73                return false;
     74        }
     75        if (out_device_address != NULL) {
     76                *out_device_address = (usb_address_t) address;
     77        }
     78        return true;
     79}
    4880
    4981static bool resolve_hc_handle_and_dev_addr(const char *devpath,
     
    6092        if (str_cmp(devpath, "virt") == 0) {
    6193                devpath = "/virt/usbhc/usb00_a1/usb00_a2";
     94        }
     95
     96        if (try_parse_class_and_address(devpath,
     97            out_hc_handle, out_device_address)) {
     98                return true;
    6299        }
    63100
Note: See TracChangeset for help on using the changeset viewer.