Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbdev/src/devpoll.c

    ra0487a2 r9dbfd288  
    4646/** Data needed for polling. */
    4747typedef struct {
    48         /** Parameters for automated polling. */
    4948        usb_device_auto_polling_t auto_polling;
    5049
    51         /** USB device to poll. */
    5250        usb_device_t *dev;
    53         /** Device pipe to use for polling. */
    5451        size_t pipe_index;
    55         /** Size of the recieved data. */
    5652        size_t request_size;
    57         /** Data buffer. */
    5853        uint8_t *buffer;
     54        void *custom_arg;
    5955} polling_data_t;
    6056
     
    123119                        ++failed_attempts;
    124120                        const bool cont = (params->on_error == NULL) ? true :
    125                             params->on_error(data->dev, rc, params->arg);
     121                            params->on_error(data->dev, rc, data->custom_arg);
    126122                        if (!cont) {
    127123                                failed_attempts = params->max_failures;
     
    133129                assert(params->on_data);
    134130                const bool carry_on = params->on_data(
    135                     data->dev, data->buffer, actual_size, params->arg);
     131                    data->dev, data->buffer, actual_size, data->custom_arg);
    136132
    137133                if (!carry_on) {
     
    153149
    154150        if (params->on_polling_end != NULL) {
    155                 params->on_polling_end(data->dev, failed, params->arg);
     151                params->on_polling_end(data->dev, failed, data->custom_arg);
    156152        }
    157153
     
    203199                .on_polling_end = terminated_callback,
    204200                .on_error = NULL,
    205                 .arg = arg,
    206201        };
    207202
    208203        return usb_device_auto_polling(dev, pipe_index, &auto_polling,
    209            request_size);
     204           request_size, arg);
    210205}
    211206
     
    229224int usb_device_auto_polling(usb_device_t *dev, size_t pipe_index,
    230225    const usb_device_auto_polling_t *polling,
    231     size_t request_size)
     226    size_t request_size, void *arg)
    232227{
    233228        if ((dev == NULL) || (polling == NULL) || (polling->on_data == NULL)) {
     
    257252        polling_data->dev = dev;
    258253        polling_data->pipe_index = pipe_index;
     254        polling_data->custom_arg = arg;
    259255
    260256        /* Copy provided settings. */
Note: See TracChangeset for help on using the changeset viewer.