Ignore:
File:
1 edited

Legend:

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

    rb36e5de2 rec59693  
    4040#include "driver.h"
    4141#include <usb/usb.h>
    42 #include <bool.h>
    4342
    4443
     
    5352 *   - argument #1 is target address
    5453 *   - argument #2 is target endpoint
    55  *   - argument #3 is max packet size of the endpoint
     54 *   - argument #3 is buffer size
    5655 * - this call is immediately followed by IPC data write (from caller)
    5756 * - the initial call (and the whole transaction) is answer after the
     
    6665 *   - argument #1 is target address
    6766 *   - argument #2 is target endpoint
    68  *   - argument #3 is max packet size of the endpoint
     67 *   - argument #3 is buffer size
    6968 * - this call is immediately followed by IPC data read (async version)
    7069 * - the call is not answered until the device returns some data (or until
     
    153152        IPC_M_USBHC_INTERRUPT_IN,
    154153
     154
     155        /** Start WRITE control transfer.
     156         * See explanation at usb_iface_funcs_t (OUT transaction).
     157         */
     158        IPC_M_USBHC_CONTROL_WRITE_SETUP,
     159
     160        /** Send control-transfer data to device.
     161         * See explanation at usb_iface_funcs_t (OUT transaction).
     162         */
     163        IPC_M_USBHC_CONTROL_WRITE_DATA,
     164
     165        /** Terminate WRITE control transfer.
     166         * See explanation at usb_iface_funcs_t (NO-DATA transaction).
     167         */
     168        IPC_M_USBHC_CONTROL_WRITE_STATUS,
     169
     170
     171
     172        /** Start READ control transfer.
     173         * See explanation at usb_iface_funcs_t (OUT transaction).
     174         */
     175        IPC_M_USBHC_CONTROL_READ_SETUP,
     176
     177        /** Get control-transfer data from device.
     178         * See explanation at usb_iface_funcs_t (IN transaction).
     179         */
     180        IPC_M_USBHC_CONTROL_READ_DATA,
     181
     182        /** Terminate READ control transfer.
     183         * See explanation at usb_iface_funcs_t (NO-DATA transaction).
     184         */
     185        IPC_M_USBHC_CONTROL_READ_STATUS,
     186
    155187        /** Issue control WRITE transfer.
    156188         * See explanation at usb_iface_funcs_t (OUT transaction) for
     
    161193        IPC_M_USBHC_CONTROL_WRITE,
    162194
    163         /** Issue control READ transfer.
     195        /** Issue control WRITE transfer.
    164196         * See explanation at usb_iface_funcs_t (IN transaction) for
    165197         * call parameters.
    166          * This call is immediately followed by IPC data write from the caller
    167          * (setup packet) and IPC data read (buffer that was read).
     198         * This call is immediately followed by IPC data read from the caller
     199         * (setup packet).
     200         * Actual data are retrieved through IPC_M_USBHC_GET_BUFFER.
    168201         */
    169202        IPC_M_USBHC_CONTROL_READ,
     
    198231        int (*tell_address)(device_t *, devman_handle_t, usb_address_t *);
    199232
    200         int (*reserve_default_address)(device_t *, usb_speed_t);
     233        int (*reserve_default_address)(device_t *);
    201234        int (*release_default_address)(device_t *);
    202         int (*request_address)(device_t *, usb_speed_t, usb_address_t *);
     235        int (*request_address)(device_t *, usb_address_t *);
    203236        int (*bind_address)(device_t *, usb_address_t, devman_handle_t);
    204237        int (*release_address)(device_t *, usb_address_t);
     
    206239        usbhc_iface_transfer_out_t interrupt_out;
    207240        usbhc_iface_transfer_in_t interrupt_in;
     241
     242        usbhc_iface_transfer_setup_t control_write_setup;
     243        usbhc_iface_transfer_out_t control_write_data;
     244        int (*control_write_status)(device_t *, usb_target_t,
     245            usbhc_iface_transfer_in_callback_t, void *);
     246
     247        usbhc_iface_transfer_setup_t control_read_setup;
     248        usbhc_iface_transfer_in_t control_read_data;
     249        int (*control_read_status)(device_t *, usb_target_t,
     250            usbhc_iface_transfer_out_callback_t, void *);
    208251
    209252        int (*control_write)(device_t *, usb_target_t,
Note: See TracChangeset for help on using the changeset viewer.