Changes in uspace/drv/vhc/connhost.c [357a302:7dfc06fa] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/vhc/connhost.c
r357a302 r7dfc06fa 48 48 usbhc_iface_transfer_out_callback_t out_callback; 49 49 usbhc_iface_transfer_in_callback_t in_callback; 50 d evice_t *dev;50 ddf_fun_t *fun; 51 51 size_t reported_size; 52 52 void *arg; … … 58 58 usbhc_iface_transfer_out_callback_t out_callback; 59 59 usbhc_iface_transfer_in_callback_t in_callback; 60 d evice_t *dev;60 ddf_fun_t *fun; 61 61 void *arg; 62 62 void *data_buffer; … … 75 75 switch (transfer->direction) { 76 76 case USB_DIRECTION_IN: 77 transfer->in_callback(transfer-> dev,77 transfer->in_callback(transfer->fun, 78 78 outcome, size, 79 79 transfer->arg); 80 80 break; 81 81 case USB_DIRECTION_OUT: 82 transfer->out_callback(transfer-> dev,82 transfer->out_callback(transfer->fun, 83 83 outcome, 84 84 transfer->arg); … … 92 92 } 93 93 94 static transfer_info_t *create_transfer_info(d evice_t *dev,94 static transfer_info_t *create_transfer_info(ddf_fun_t *fun, 95 95 usb_direction_t direction, void *arg) 96 96 { … … 101 101 transfer->out_callback = NULL; 102 102 transfer->arg = arg; 103 transfer-> dev = dev;103 transfer->fun = fun; 104 104 transfer->reported_size = (size_t) -1; 105 105 … … 112 112 switch (transfer->direction) { 113 113 case USB_DIRECTION_IN: 114 transfer->in_callback(transfer-> dev,114 transfer->in_callback(transfer->fun, 115 115 outcome, size, 116 116 transfer->arg); 117 117 break; 118 118 case USB_DIRECTION_OUT: 119 transfer->out_callback(transfer-> dev,119 transfer->out_callback(transfer->fun, 120 120 outcome, 121 121 transfer->arg); … … 138 138 } 139 139 140 transfer_info_t *transfer = create_transfer_info(ctrl_transfer-> dev,140 transfer_info_t *transfer = create_transfer_info(ctrl_transfer->fun, 141 141 ctrl_transfer->direction, ctrl_transfer->arg); 142 142 transfer->out_callback = ctrl_transfer->out_callback; … … 195 195 } 196 196 197 static control_transfer_info_t *create_control_transfer_info(d evice_t *dev,197 static control_transfer_info_t *create_control_transfer_info(ddf_fun_t *fun, 198 198 usb_direction_t direction, usb_target_t target, 199 199 void *data_buffer, size_t data_buffer_size, … … 208 208 transfer->out_callback = NULL; 209 209 transfer->arg = arg; 210 transfer-> dev = dev;210 transfer->fun = fun; 211 211 transfer->data_buffer = data_buffer; 212 212 transfer->data_buffer_size = data_buffer_size; … … 215 215 } 216 216 217 static int enqueue_transfer_out(d evice_t *dev,217 static int enqueue_transfer_out(ddf_fun_t *fun, 218 218 usb_target_t target, usb_transfer_type_t transfer_type, 219 219 void *buffer, size_t size, … … 226 226 227 227 transfer_info_t *transfer 228 = create_transfer_info( dev, USB_DIRECTION_OUT, arg);228 = create_transfer_info(fun, USB_DIRECTION_OUT, arg); 229 229 transfer->out_callback = callback; 230 230 … … 235 235 } 236 236 237 static int enqueue_transfer_in(d evice_t *dev,237 static int enqueue_transfer_in(ddf_fun_t *fun, 238 238 usb_target_t target, usb_transfer_type_t transfer_type, 239 239 void *buffer, size_t size, … … 246 246 247 247 transfer_info_t *transfer 248 = create_transfer_info( dev, USB_DIRECTION_IN, arg);248 = create_transfer_info(fun, USB_DIRECTION_IN, arg); 249 249 transfer->in_callback = callback; 250 250 … … 256 256 257 257 258 static int interrupt_out(device_t *dev, usb_target_t target, 259 size_t max_packet_size, 258 static int interrupt_out(ddf_fun_t *fun, usb_target_t target, 260 259 void *data, size_t size, 261 260 usbhc_iface_transfer_out_callback_t callback, void *arg) 262 261 { 263 return enqueue_transfer_out( dev, target, USB_TRANSFER_INTERRUPT,262 return enqueue_transfer_out(fun, target, USB_TRANSFER_INTERRUPT, 264 263 data, size, 265 264 callback, arg); 266 265 } 267 266 268 static int interrupt_in(device_t *dev, usb_target_t target, 269 size_t max_packet_size, 267 static int interrupt_in(ddf_fun_t *fun, usb_target_t target, 270 268 void *data, size_t size, 271 269 usbhc_iface_transfer_in_callback_t callback, void *arg) 272 270 { 273 return enqueue_transfer_in( dev, target, USB_TRANSFER_INTERRUPT,271 return enqueue_transfer_in(fun, target, USB_TRANSFER_INTERRUPT, 274 272 data, size, 275 273 callback, arg); 276 274 } 277 275 278 static int control_write(device_t *dev, usb_target_t target, 279 size_t max_packet_size, 276 static int control_write(ddf_fun_t *fun, usb_target_t target, 280 277 void *setup_packet, size_t setup_packet_size, 281 278 void *data, size_t data_size, … … 283 280 { 284 281 control_transfer_info_t *transfer 285 = create_control_transfer_info( dev, USB_DIRECTION_OUT, target,282 = create_control_transfer_info(fun, USB_DIRECTION_OUT, target, 286 283 data, data_size, arg); 287 284 transfer->out_callback = callback; … … 294 291 } 295 292 296 static int control_read(device_t *dev, usb_target_t target, 297 size_t max_packet_size, 293 static int control_read(ddf_fun_t *fun, usb_target_t target, 298 294 void *setup_packet, size_t setup_packet_size, 299 295 void *data, size_t data_size, … … 301 297 { 302 298 control_transfer_info_t *transfer 303 = create_control_transfer_info( dev, USB_DIRECTION_IN, target,299 = create_control_transfer_info(fun, USB_DIRECTION_IN, target, 304 300 data, data_size, arg); 305 301 transfer->in_callback = callback; … … 314 310 static usb_address_keeping_t addresses; 315 311 316 static int tell_address(d evice_t *dev, devman_handle_t handle,312 static int tell_address(ddf_fun_t *fun, devman_handle_t handle, 317 313 usb_address_t *address) 318 314 { 315 usb_log_debug("tell_address(fun \"%s\", handle %zu)\n", 316 fun->name, (size_t) fun->handle); 319 317 usb_address_t addr = usb_address_keeping_find(&addresses, handle); 320 318 if (addr < 0) { … … 326 324 } 327 325 328 static int reserve_default_address(d evice_t *dev, usb_speed_t ignored)326 static int reserve_default_address(ddf_fun_t *fun, usb_speed_t ignored) 329 327 { 330 328 usb_address_keeping_reserve_default(&addresses); … … 332 330 } 333 331 334 static int release_default_address(d evice_t *dev)332 static int release_default_address(ddf_fun_t *fun) 335 333 { 336 334 usb_address_keeping_release_default(&addresses); … … 338 336 } 339 337 340 static int request_address(d evice_t *dev, usb_speed_t ignored,338 static int request_address(ddf_fun_t *fun, usb_speed_t ignored, 341 339 usb_address_t *address) 342 340 { … … 350 348 } 351 349 352 static int release_address(d evice_t *dev, usb_address_t address)350 static int release_address(ddf_fun_t *fun, usb_address_t address) 353 351 { 354 352 return usb_address_keeping_release(&addresses, address); 355 353 } 356 354 357 static int bind_address(d evice_t *dev, usb_address_t address,355 static int bind_address(ddf_fun_t *fun, usb_address_t address, 358 356 devman_handle_t handle) 359 357 { 360 358 usb_address_keeping_devman_bind(&addresses, address, handle); 361 359 return EOK; 360 } 361 362 static int usb_iface_get_hc_handle_rh_impl(ddf_fun_t *root_hub_fun, 363 devman_handle_t *handle) 364 { 365 ddf_fun_t *hc_fun = root_hub_fun->driver_data; 366 assert(hc_fun != NULL); 367 368 *handle = hc_fun->handle; 369 370 usb_log_debug("usb_iface_get_hc_handle_rh_impl returns %zu\n", *handle); 371 372 return EOK; 373 } 374 375 static int tell_address_rh(ddf_fun_t *root_hub_fun, devman_handle_t handle, 376 usb_address_t *address) 377 { 378 ddf_fun_t *hc_fun = root_hub_fun->driver_data; 379 assert(hc_fun != NULL); 380 381 return tell_address(hc_fun, root_hub_fun->handle, address); 362 382 } 363 383 … … 386 406 }; 387 407 408 usb_iface_t rh_usb_iface = { 409 .get_hc_handle = usb_iface_get_hc_handle_rh_impl, 410 .get_address = tell_address_rh 411 }; 412 388 413 389 414 /**
Note:
See TracChangeset
for help on using the changeset viewer.