Changes in uspace/drv/ohci/batch.c [d017cea:aa9ccf7] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/batch.c
rd017cea raa9ccf7 73 73 CHECK_NULL_DISPOSE_RETURN(instance, 74 74 "Failed to allocate batch instance.\n"); 75 usb_transfer_batch_init(instance, ep, buffer, NULL, buffer_size, 76 NULL, setup_size, func_in, func_out, arg, fun, NULL); 75 usb_target_t target = 76 { .address = ep->address, .endpoint = ep->endpoint }; 77 usb_transfer_batch_init(instance, target, ep->transfer_type, ep->speed, 78 ep->max_packet_size, buffer, NULL, buffer_size, NULL, setup_size, 79 func_in, func_out, arg, fun, ep, NULL); 77 80 78 81 ohci_batch_t *data = malloc(sizeof(ohci_batch_t)); … … 98 101 99 102 if (buffer_size > 0) { 100 instance-> data_buffer = malloc32(buffer_size);101 CHECK_NULL_DISPOSE_RETURN(instance-> data_buffer,103 instance->transport_buffer = malloc32(buffer_size); 104 CHECK_NULL_DISPOSE_RETURN(instance->transport_buffer, 102 105 "Failed to allocate device accessible buffer.\n"); 103 106 } … … 121 124 free32(data->tds); 122 125 free32(instance->setup_buffer); 123 free32(instance-> data_buffer);126 free32(instance->transport_buffer); 124 127 free(data); 125 128 free(instance); … … 162 165 assert(instance); 163 166 /* We are data out, we are supposed to provide data */ 164 memcpy(instance->data_buffer, instance->buffer, instance->buffer_size); 167 memcpy(instance->transport_buffer, instance->buffer, 168 instance->buffer_size); 165 169 instance->next_step = batch_call_out_and_dispose; 166 170 batch_control(instance, USB_DIRECTION_OUT, USB_DIRECTION_IN); … … 179 183 { 180 184 assert(instance); 185 assert(instance->direction == USB_DIRECTION_IN); 181 186 instance->next_step = batch_call_in_and_dispose; 182 187 batch_data(instance); … … 187 192 { 188 193 assert(instance); 194 assert(instance->direction == USB_DIRECTION_OUT); 189 195 /* We are data out, we are supposed to provide data */ 190 memcpy(instance->data_buffer, instance->buffer, instance->buffer_size); 196 memcpy(instance->transport_buffer, instance->buffer, 197 instance->buffer_size); 191 198 instance->next_step = batch_call_out_and_dispose; 192 199 batch_data(instance); … … 197 204 { 198 205 assert(instance); 206 instance->direction = USB_DIRECTION_IN; 199 207 instance->next_step = batch_call_in_and_dispose; 200 208 batch_data(instance); … … 205 213 { 206 214 assert(instance); 215 instance->direction = USB_DIRECTION_IN; 207 216 instance->next_step = batch_call_in_and_dispose; 208 217 batch_data(instance); … … 240 249 size_t td_current = 1; 241 250 size_t remain_size = instance->buffer_size; 242 char * buffer = instance->data_buffer;251 char *transfer_buffer = instance->transport_buffer; 243 252 while (remain_size > 0) { 244 253 size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ? … … 246 255 toggle = 1 - toggle; 247 256 248 td_init(&data->tds[td_current], data_dir, buffer,257 td_init(&data->tds[td_current], data_dir, transfer_buffer, 249 258 transfer_size, toggle); 250 259 td_set_next(&data->tds[td_current], &data->tds[td_current + 1]); … … 253 262 data->tds[td_current].next, data->tds[td_current].be); 254 263 255 buffer += transfer_size;264 transfer_buffer += transfer_size; 256 265 remain_size -= transfer_size; 257 266 assert(td_current < data->td_count - 2); … … 281 290 size_t td_current = 0; 282 291 size_t remain_size = instance->buffer_size; 283 char * buffer = instance->data_buffer;292 char *transfer_buffer = instance->transport_buffer; 284 293 while (remain_size > 0) { 285 294 size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ? … … 287 296 288 297 td_init(&data->tds[td_current], instance->ep->direction, 289 buffer, transfer_size, -1);298 transfer_buffer, transfer_size, -1); 290 299 td_set_next(&data->tds[td_current], &data->tds[td_current + 1]); 291 300 usb_log_debug("Created DATA TD: %x:%x:%x:%x.\n", … … 293 302 data->tds[td_current].next, data->tds[td_current].be); 294 303 295 buffer += transfer_size;304 transfer_buffer += transfer_size; 296 305 remain_size -= transfer_size; 297 306 assert(td_current < data->td_count);
Note:
See TracChangeset
for help on using the changeset viewer.