Ignore:
Timestamp:
2012-02-18T16:47:38Z (13 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4449c6c
Parents:
bd5f3b7 (diff), f943dd3 (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.

File:
1 moved

Legend:

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

    rbd5f3b7 r00aece0  
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2727 */
    28 
    2928/** @addtogroup libusbhost
    3029 * @{
    3130 */
    3231/** @file
    33  * Device keeper structure and functions.
     32 * Device manager structure and functions.
    3433 *
    3534 * Typical USB host controller needs to keep track of various settings for
     
    3837 * This structure shall simplify the management.
    3938 */
    40 #ifndef LIBUSBHOST_HOST_DEVICE_KEEPER_H
    41 #define LIBUSBHOST_HOST_DEVICE_KEEPER_H
     39#ifndef LIBUSBHOST_HOST_USB_DEVICE_MANAGER_H
     40#define LIBUSBHOST_HOST_USB_DEVICE_MANAGER_H
    4241
    4342#include <adt/list.h>
     
    5049#define USB_ADDRESS_COUNT (USB11_ADDRESS_MAX + 1)
    5150
    52 /** Information about attached USB device. */
    53 struct usb_device_info {
    54         usb_speed_t speed;
    55         bool occupied;
    56         devman_handle_t handle;
    57 };
    58 
    59 /** Host controller device keeper.
    60  * You shall not access members directly but only using functions below.
     51/** Host controller device manager.
     52 * You shall not access members directly.
    6153 */
    6254typedef struct {
    63         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. */
    6464        fibril_mutex_t guard;
     65        /** The last reserved address */
    6566        usb_address_t last_address;
    66 } usb_device_keeper_t;
     67} usb_device_manager_t;
    6768
    68 void usb_device_keeper_init(usb_device_keeper_t *instance);
     69void usb_device_manager_init(
     70    usb_device_manager_t *instance, usb_speed_t max_speed);
    6971
    70 usb_address_t device_keeper_get_free_address(usb_device_keeper_t *instance,
    71     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);
    7274
    73 void usb_device_keeper_bind(usb_device_keeper_t *instance,
     75int usb_device_manager_bind_address(usb_device_manager_t *instance,
    7476    usb_address_t address, devman_handle_t handle);
    7577
    76 void usb_device_keeper_release(usb_device_keeper_t *instance,
     78int usb_device_manager_release_address(usb_device_manager_t *instance,
    7779    usb_address_t address);
    7880
    79 usb_address_t usb_device_keeper_find(usb_device_keeper_t *instance,
     81usb_address_t usb_device_manager_find_address(usb_device_manager_t *instance,
    8082    devman_handle_t handle);
    8183
    82 bool usb_device_keeper_find_by_address(usb_device_keeper_t *instance,
    83     usb_address_t address, devman_handle_t *handle);
    84 
    85 usb_speed_t usb_device_keeper_get_speed(usb_device_keeper_t *instance,
    86     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);
    8786#endif
    8887/**
Note: See TracChangeset for help on using the changeset viewer.