Ignore:
Timestamp:
2012-06-29T13:02:14Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
722912e
Parents:
ba72f2b (diff), 0bbd13e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes

Trivial conflicts.

File:
1 edited

Legend:

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

    rba72f2b r6843a9c  
    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        /** Maximum speed allowed. */
     62        usb_speed_t max_speed;
     63        /** Protect access to members. */
    6364        fibril_mutex_t guard;
     65        /** The last reserved address */
    6466        usb_address_t last_address;
    6567} usb_device_manager_t;
    6668
    67 void usb_device_manager_init(usb_device_manager_t *instance);
     69void usb_device_manager_init(
     70    usb_device_manager_t *instance, usb_speed_t max_speed);
    6871
    69 usb_address_t usb_device_manager_get_free_address(
    70     usb_device_manager_t *instance, usb_speed_t speed);
     72int usb_device_manager_request_address(usb_device_manager_t *instance,
     73    usb_address_t *address, bool strict, usb_speed_t speed);
    7174
    72 void usb_device_manager_bind(usb_device_manager_t *instance,
     75int usb_device_manager_bind_address(usb_device_manager_t *instance,
    7376    usb_address_t address, devman_handle_t handle);
    7477
    75 void usb_device_manager_release(usb_device_manager_t *instance,
     78int usb_device_manager_release_address(usb_device_manager_t *instance,
    7679    usb_address_t address);
    7780
    78 usb_address_t usb_device_manager_find(usb_device_manager_t *instance,
     81usb_address_t usb_device_manager_find_address(usb_device_manager_t *instance,
    7982    devman_handle_t handle);
    8083
    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);
     84int usb_device_manager_get_info_by_address(usb_device_manager_t *instance,
     85    usb_address_t address, devman_handle_t *handle, usb_speed_t *speed);
    8686#endif
    8787/**
Note: See TracChangeset for help on using the changeset viewer.