Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbhost/include/usb/host/usb_device_manager.h

    r8b54fe6 r0cd8089  
    4949#define USB_ADDRESS_COUNT (USB11_ADDRESS_MAX + 1)
    5050
    51 /** Information about attached USB device. */
    52 struct usb_device_info {
    53         usb_speed_t speed;
    54         bool occupied;
    55         devman_handle_t handle;
    56 };
    57 
    5851/** Host controller device manager.
    59  * You shall not access members directly but only using functions below.
     52 * You shall not access members directly.
    6053 */
    6154typedef struct {
    62         struct usb_device_info devices[USB_ADDRESS_COUNT];
     55        /** Information about attached USB devices. */
     56        struct {
     57                usb_speed_t speed;      /**< Device speed */
     58                bool occupied;          /**< The address is in use. */
     59                devman_handle_t handle; /**< Devman handle of the device. */
     60        } devices[USB_ADDRESS_COUNT];
     61        usb_speed_t max_speed;
    6362        fibril_mutex_t guard;
     63        /** The last reserved address */
    6464        usb_address_t last_address;
    6565} usb_device_manager_t;
    6666
    67 void usb_device_manager_init(usb_device_manager_t *instance);
     67void usb_device_manager_init(
     68    usb_device_manager_t *instance, usb_speed_t max_speed);
    6869
    69 usb_address_t usb_device_manager_get_free_address(
    70     usb_device_manager_t *instance, usb_speed_t speed);
     70int usb_device_manager_request_address(usb_device_manager_t *instance,
     71    usb_address_t *address, bool strict, usb_speed_t speed);
    7172
    72 void usb_device_manager_bind(usb_device_manager_t *instance,
     73int usb_device_manager_bind_address(usb_device_manager_t *instance,
    7374    usb_address_t address, devman_handle_t handle);
    7475
    75 void usb_device_manager_release(usb_device_manager_t *instance,
     76int usb_device_manager_release_address(usb_device_manager_t *instance,
    7677    usb_address_t address);
    7778
    78 usb_address_t usb_device_manager_find(usb_device_manager_t *instance,
     79usb_address_t usb_device_manager_find_address(usb_device_manager_t *instance,
    7980    devman_handle_t handle);
    8081
    81 bool usb_device_manager_find_by_address(usb_device_manager_t *instance,
    82     usb_address_t address, devman_handle_t *handle);
    83 
    84 usb_speed_t usb_device_manager_get_speed(usb_device_manager_t *instance,
    85     usb_address_t address);
     82int usb_device_manager_get_info_by_address(usb_device_manager_t *instance,
     83    usb_address_t address, devman_handle_t *handle, usb_speed_t *speed);
    8684#endif
    8785/**
Note: See TracChangeset for help on using the changeset viewer.