Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci-hcd/batch.c

    reae83aa r0e06a14  
    4747static int batch_schedule(batch_t *instance);
    4848
    49 static void batch_control(batch_t *instance,
    50     usb_packet_id data_stage, usb_packet_id status_stage);
    51 static void batch_data(batch_t *instance, usb_packet_id pid);
     49static void batch_control(
     50    batch_t *instance, int data_stage, int status_stage);
     51static void batch_data(batch_t *instance, int pid);
    5252static void batch_call_in(batch_t *instance);
    5353static void batch_call_out(batch_t *instance);
     
    8484        }
    8585
    86         instance->tds = malloc32(sizeof(td_t) * instance->packets);
     86        instance->tds = malloc32(sizeof(transfer_descriptor_t) * instance->packets);
    8787        if (instance->tds == NULL) {
    8888                usb_log_error("Failed to allocate transfer descriptors.\n");
     
    9191                return NULL;
    9292        }
    93         bzero(instance->tds, sizeof(td_t) * instance->packets);
     93        bzero(instance->tds, sizeof(transfer_descriptor_t) * instance->packets);
    9494
    9595        const size_t transport_size = max_packet_size * instance->packets;
     
    152152        size_t i = 0;
    153153        for (;i < instance->packets; ++i) {
    154                 if (td_is_active(&instance->tds[i])) {
     154                if (transfer_descriptor_is_active(&instance->tds[i])) {
    155155                        return false;
    156156                }
    157 
    158                 instance->error = td_status(&instance->tds[i]);
     157                instance->error = transfer_descriptor_status(&instance->tds[i]);
    159158                if (instance->error != EOK) {
     159                        if (i > 0)
     160                                instance->transfered_size -= instance->setup_size;
    160161                        usb_log_debug("Batch(%p) found error TD(%d):%x.\n",
    161                             instance, i, instance->tds[i].status);
    162                         if (i > 0)
    163                                 goto substract_ret;
     162                          instance, i, instance->tds[i].status);
    164163                        return true;
    165164                }
    166 
    167                 instance->transfered_size += td_act_size(&instance->tds[i]);
    168                 if (td_is_short(&instance->tds[i]))
    169                         goto substract_ret;
    170         }
    171 substract_ret:
     165                instance->transfered_size +=
     166                    transfer_descriptor_actual_size(&instance->tds[i]);
     167        }
    172168        instance->transfered_size -= instance->setup_size;
    173169        return true;
     
    232228}
    233229/*----------------------------------------------------------------------------*/
    234 static void batch_data(batch_t *instance, usb_packet_id pid)
     230static void batch_data(batch_t *instance, int pid)
    235231{
    236232        assert(instance);
     
    251247                    remain_size : instance->max_packet_size;
    252248
    253                 td_init(&instance->tds[packet],
     249                transfer_descriptor_init(&instance->tds[packet],
    254250                    DEFAULT_ERROR_COUNT, packet_size, toggle, false, low_speed,
    255251                    instance->target, pid, data,
     
    266262}
    267263/*----------------------------------------------------------------------------*/
    268 static void batch_control(batch_t *instance,
    269    usb_packet_id data_stage, usb_packet_id status_stage)
     264static void batch_control(
     265    batch_t *instance, int data_stage, int status_stage)
    270266{
    271267        assert(instance);
     
    274270        int toggle = 0;
    275271        /* setup stage */
    276         td_init(instance->tds, DEFAULT_ERROR_COUNT,
     272        transfer_descriptor_init(instance->tds, DEFAULT_ERROR_COUNT,
    277273            instance->setup_size, toggle, false, low_speed, instance->target,
    278274            USB_PID_SETUP, instance->setup_buffer, &instance->tds[1]);
     
    292288                    remain_size : instance->max_packet_size;
    293289
    294                 td_init(&instance->tds[packet],
     290                transfer_descriptor_init(&instance->tds[packet],
    295291                    DEFAULT_ERROR_COUNT, packet_size, toggle, false, low_speed,
    296292                    instance->target, data_stage, data,
     
    305301        /* status stage */
    306302        assert(packet == instance->packets - 1);
    307         td_init(&instance->tds[packet], DEFAULT_ERROR_COUNT,
     303        transfer_descriptor_init(&instance->tds[packet], DEFAULT_ERROR_COUNT,
    308304            0, 1, false, low_speed, instance->target, status_stage, NULL, NULL);
    309305
Note: See TracChangeset for help on using the changeset viewer.