Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbhost/src/usb_transfer_batch.c

    r9d58539 r8d2e251  
    3232 * USB transfer transaction structures (implementation).
    3333 */
     34
     35#include <usb/host/usb_transfer_batch.h>
     36#include <usb/debug.h>
     37
     38#include <assert.h>
    3439#include <errno.h>
    3540#include <macros.h>
    36 
    37 #include <usb/usb.h>
    38 #include <usb/debug.h>
    39 
    40 #include <usb/host/usb_transfer_batch.h>
    41 #include <usb/host/hcd.h>
     41#include <mem.h>
     42#include <stdlib.h>
     43#include <usbhc_iface.h>
    4244
    4345/** Allocate and initialize usb_transfer_batch structure.
     
    6163    usbhc_iface_transfer_in_callback_t func_in,
    6264    usbhc_iface_transfer_out_callback_t func_out,
    63     void *arg,
    64     ddf_fun_t *fun,
    65     void *private_data,
    66     void (*private_data_dtor)(void *)
     65    void *arg
    6766    )
    6867{
     
    8180                instance->buffer_size = buffer_size;
    8281                instance->setup_size = 0;
    83                 instance->fun = fun;
    84                 instance->private_data = private_data;
    85                 instance->private_data_dtor = private_data_dtor;
    8682                instance->transfered_size = 0;
    8783                instance->error = EOK;
     
    9692        return instance;
    9793}
    98 /*----------------------------------------------------------------------------*/
     94
    9995/** Correctly dispose all used data structures.
    10096 *
     
    110106                endpoint_release(instance->ep);
    111107        }
    112         if (instance->private_data) {
    113                 assert(instance->private_data_dtor);
    114                 instance->private_data_dtor(instance->private_data);
    115         }
    116108        free(instance);
    117109}
    118 /*----------------------------------------------------------------------------*/
     110
    119111/** Prepare data and call the right callback.
    120112 *
     
    133125        /* NOTE: Only one of these pointers should be set. */
    134126        if (instance->callback_out) {
    135                 /* Check for commands that reset toggle bit */
    136                 if (instance->ep->transfer_type == USB_TRANSFER_CONTROL
    137                     && error == EOK) {
    138                         const usb_target_t target =
    139                             {{ instance->ep->address, instance->ep->endpoint }};
    140                         reset_ep_if_need(fun_to_hcd(instance->fun), target,
    141                             instance->setup_buffer);
    142                 }
    143                 instance->callback_out(instance->fun, error, instance->arg);
     127                instance->callback_out(error, instance->arg);
    144128        }
    145129
     
    150134                        memcpy(instance->buffer, data, safe_size);
    151135                }
    152                 instance->callback_in(instance->fun, error,
    153                     safe_size, instance->arg);
     136                instance->callback_in(error, safe_size, instance->arg);
    154137        }
    155138}
Note: See TracChangeset for help on using the changeset viewer.