Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbdev/include/usb/dev/driver.h

    rb803845 r77ad86c  
    3333 * USB device driver framework.
    3434 */
     35
    3536#ifndef LIBUSBDEV_DRIVER_H_
    3637#define LIBUSBDEV_DRIVER_H_
    3738
     39#include <usb/hc.h>
     40#include <usb/dev/usb_device_connection.h>
    3841#include <usb/dev/pipes.h>
    3942
     
    7275/** USB device structure. */
    7376typedef struct {
     77        /** Connection to USB hc, used by wire and arbitrary requests. */
     78        usb_hc_connection_t hc_conn;
     79        /** Connection backing the pipes.
     80         * Typically, you will not need to use this attribute at all.
     81         */
     82        usb_device_connection_t wire;
    7483        /** The default control pipe. */
    7584        usb_pipe_t ctrl_pipe;
     
    8796        int interface_no;
    8897
    89         /** Alternative interfaces.
    90          * Set to NULL when the driver controls whole device
    91          * (i.e. more (or any) interfaces).
    92          */
    93         usb_alternate_interfaces_t *alternate_interfaces;
     98        /** Alternative interfaces. */
     99        usb_alternate_interfaces_t alternate_interfaces;
    94100
    95101        /** Some useful descriptors. */
    96102        usb_device_descriptors_t descriptors;
    97103
    98         /** Generic DDF device backing this one. RO: DO NOT TOUCH!*/
     104        /** Generic DDF device backing this one. DO NOT TOUCH! */
    99105        ddf_dev_t *ddf_dev;
    100106        /** Custom driver data.
     
    103109         */
    104110        void *driver_data;
    105 
    106         /** Connection backing the pipes.
    107          * Typically, you will not need to use this attribute at all.
    108          */
    109         usb_device_connection_t wire;
    110111} usb_device_t;
    111112
     
    161162} usb_driver_t;
    162163
    163 int usb_driver_main(usb_driver_t *);
     164int usb_driver_main(const usb_driver_t *);
     165
     166int usb_device_init(usb_device_t *, ddf_dev_t *,
     167    const usb_endpoint_description_t **, const char **);
     168void usb_device_deinit(usb_device_t *);
    164169
    165170int usb_device_select_interface(usb_device_t *, uint8_t,
     
    167172
    168173int usb_device_retrieve_descriptors(usb_pipe_t *, usb_device_descriptors_t *);
    169 int usb_device_create_pipes(const ddf_dev_t *, usb_device_connection_t *,
     174void usb_device_release_descriptors(usb_device_descriptors_t *);
     175
     176int usb_device_create_pipes(usb_device_connection_t *,
    170177    const usb_endpoint_description_t **, const uint8_t *, size_t, int, int,
    171178    usb_endpoint_mapping_t **, size_t *);
    172 int usb_device_destroy_pipes(const ddf_dev_t *, usb_endpoint_mapping_t *, size_t);
    173 int usb_device_create(ddf_dev_t *, const usb_endpoint_description_t **,
    174     usb_device_t **, const char **);
    175 void usb_device_deinit(usb_device_t *);
     179void usb_device_destroy_pipes(usb_endpoint_mapping_t *, size_t);
     180
    176181void * usb_device_data_alloc(usb_device_t *, size_t);
    177182
    178183size_t usb_interface_count_alternates(const uint8_t *, size_t, uint8_t);
    179 int usb_alternate_interfaces_create(const uint8_t *, size_t, int,
    180     usb_alternate_interfaces_t **);
    181 
     184int usb_alternate_interfaces_init(usb_alternate_interfaces_t *,
     185    const uint8_t *, size_t, int);
     186void usb_alternate_interfaces_deinit(usb_alternate_interfaces_t *);
    182187#endif
    183188/**
Note: See TracChangeset for help on using the changeset viewer.