Changes in uspace/drv/uhci-hcd/batch.c [eae83aa:0e06a14] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/batch.c
reae83aa r0e06a14 47 47 static int batch_schedule(batch_t *instance); 48 48 49 static void batch_control( batch_t *instance,50 usb_packet_id data_stage, usb_packet_idstatus_stage);51 static void batch_data(batch_t *instance, usb_packet_idpid);49 static void batch_control( 50 batch_t *instance, int data_stage, int status_stage); 51 static void batch_data(batch_t *instance, int pid); 52 52 static void batch_call_in(batch_t *instance); 53 53 static void batch_call_out(batch_t *instance); … … 84 84 } 85 85 86 instance->tds = malloc32(sizeof(t d_t) * instance->packets);86 instance->tds = malloc32(sizeof(transfer_descriptor_t) * instance->packets); 87 87 if (instance->tds == NULL) { 88 88 usb_log_error("Failed to allocate transfer descriptors.\n"); … … 91 91 return NULL; 92 92 } 93 bzero(instance->tds, sizeof(t d_t) * instance->packets);93 bzero(instance->tds, sizeof(transfer_descriptor_t) * instance->packets); 94 94 95 95 const size_t transport_size = max_packet_size * instance->packets; … … 152 152 size_t i = 0; 153 153 for (;i < instance->packets; ++i) { 154 if (t d_is_active(&instance->tds[i])) {154 if (transfer_descriptor_is_active(&instance->tds[i])) { 155 155 return false; 156 156 } 157 158 instance->error = td_status(&instance->tds[i]); 157 instance->error = transfer_descriptor_status(&instance->tds[i]); 159 158 if (instance->error != EOK) { 159 if (i > 0) 160 instance->transfered_size -= instance->setup_size; 160 161 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); 164 163 return true; 165 164 } 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 } 172 168 instance->transfered_size -= instance->setup_size; 173 169 return true; … … 232 228 } 233 229 /*----------------------------------------------------------------------------*/ 234 static void batch_data(batch_t *instance, usb_packet_idpid)230 static void batch_data(batch_t *instance, int pid) 235 231 { 236 232 assert(instance); … … 251 247 remain_size : instance->max_packet_size; 252 248 253 t d_init(&instance->tds[packet],249 transfer_descriptor_init(&instance->tds[packet], 254 250 DEFAULT_ERROR_COUNT, packet_size, toggle, false, low_speed, 255 251 instance->target, pid, data, … … 266 262 } 267 263 /*----------------------------------------------------------------------------*/ 268 static void batch_control( batch_t *instance,269 usb_packet_id data_stage, usb_packet_idstatus_stage)264 static void batch_control( 265 batch_t *instance, int data_stage, int status_stage) 270 266 { 271 267 assert(instance); … … 274 270 int toggle = 0; 275 271 /* setup stage */ 276 t d_init(instance->tds, DEFAULT_ERROR_COUNT,272 transfer_descriptor_init(instance->tds, DEFAULT_ERROR_COUNT, 277 273 instance->setup_size, toggle, false, low_speed, instance->target, 278 274 USB_PID_SETUP, instance->setup_buffer, &instance->tds[1]); … … 292 288 remain_size : instance->max_packet_size; 293 289 294 t d_init(&instance->tds[packet],290 transfer_descriptor_init(&instance->tds[packet], 295 291 DEFAULT_ERROR_COUNT, packet_size, toggle, false, low_speed, 296 292 instance->target, data_stage, data, … … 305 301 /* status stage */ 306 302 assert(packet == instance->packets - 1); 307 t d_init(&instance->tds[packet], DEFAULT_ERROR_COUNT,303 transfer_descriptor_init(&instance->tds[packet], DEFAULT_ERROR_COUNT, 308 304 0, 1, false, low_speed, instance->target, status_stage, NULL, NULL); 309 305
Note:
See TracChangeset
for help on using the changeset viewer.