Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/include/usb_iface.h

    r9d58539 r58563585  
    4242#include <usb/usb.h>
    4343
    44 int usb_get_my_address(async_exch_t *, usb_address_t *);
    45 int usb_get_my_interface(async_exch_t *, int *);
    46 int usb_get_hc_handle(async_exch_t *, devman_handle_t *);
     44typedef async_sess_t usb_dev_session_t;
     45
     46extern usb_dev_session_t *usb_dev_connect(devman_handle_t);
     47extern usb_dev_session_t *usb_dev_connect_to_self(ddf_dev_t *);
     48extern void usb_dev_disconnect(usb_dev_session_t *);
     49
     50extern int usb_get_my_interface(async_exch_t *, int *);
     51extern int usb_get_my_device_handle(async_exch_t *, devman_handle_t *);
     52
     53extern int usb_reserve_default_address(async_exch_t *, usb_speed_t);
     54extern int usb_release_default_address(async_exch_t *);
     55
     56extern int usb_device_enumerate(async_exch_t *, unsigned port);
     57extern int usb_device_remove(async_exch_t *, unsigned port);
     58
     59extern int usb_register_endpoint(async_exch_t *, usb_endpoint_t,
     60    usb_transfer_type_t, usb_direction_t, size_t, unsigned, unsigned);
     61extern int usb_unregister_endpoint(async_exch_t *, usb_endpoint_t,
     62    usb_direction_t);
     63extern int usb_read(async_exch_t *, usb_endpoint_t, uint64_t, void *, size_t,
     64    size_t *);
     65extern int usb_write(async_exch_t *, usb_endpoint_t, uint64_t, const void *,
     66    size_t);
     67
     68/** Callback for outgoing transfer. */
     69typedef void (*usb_iface_transfer_out_callback_t)(int, void *);
     70
     71/** Callback for incoming transfer. */
     72typedef void (*usb_iface_transfer_in_callback_t)(int, size_t, void *);
    4773
    4874/** USB device communication interface. */
    4975typedef struct {
    50         int (*get_my_address)(ddf_fun_t *, usb_address_t *);
    5176        int (*get_my_interface)(ddf_fun_t *, int *);
    52         int (*get_hc_handle)(ddf_fun_t *, devman_handle_t *);
     77        int (*get_my_device_handle)(ddf_fun_t *, devman_handle_t *);
     78
     79        int (*reserve_default_address)(ddf_fun_t *, usb_speed_t);
     80        int (*release_default_address)(ddf_fun_t *);
     81
     82        int (*device_enumerate)(ddf_fun_t *, unsigned);
     83        int (*device_remove)(ddf_fun_t *, unsigned);
     84
     85        int (*register_endpoint)(ddf_fun_t *, usb_endpoint_t,
     86            usb_transfer_type_t, usb_direction_t, size_t, unsigned, unsigned);
     87        int (*unregister_endpoint)(ddf_fun_t *, usb_endpoint_t,
     88            usb_direction_t);
     89
     90        int (*read)(ddf_fun_t *, usb_endpoint_t, uint64_t, uint8_t *, size_t,
     91            usb_iface_transfer_in_callback_t, void *);
     92        int (*write)(ddf_fun_t *, usb_endpoint_t, uint64_t, const uint8_t *,
     93            size_t, usb_iface_transfer_out_callback_t, void *);
    5394} usb_iface_t;
    5495
Note: See TracChangeset for help on using the changeset viewer.