Changeset 65b458c4 in mainline for uspace/drv/usbhid/mouse/mousedev.c
- Timestamp:
- 2011-05-13T12:44:37Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 37f87fa
- Parents:
- 97cb542
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/mouse/mousedev.c
r97cb542 r65b458c4 122 122 sysarg_t method = IPC_GET_IMETHOD(*icall); 123 123 124 usb_ hid_dev_t *hid_dev = (usb_hid_dev_t *)fun->driver_data;125 126 if ( hid_dev == NULL || hid_dev->data== NULL) {124 usb_mouse_t *mouse_dev = (usb_mouse_t *)fun->driver_data; 125 126 if (mouse_dev == NULL) { 127 127 usb_log_debug("default_connection_handler: Missing " 128 128 "parameters.\n"); … … 131 131 } 132 132 133 assert(hid_dev != NULL);134 assert(hid_dev->data != NULL);135 usb_mouse_t *mouse_dev = (usb_mouse_t *)hid_dev->data;136 137 133 int *phone = (str_cmp(fun->name, HID_MOUSE_FUN_NAME) == 0) 138 134 ? &mouse_dev->mouse_phone : &mouse_dev->wheel_phone; … … 145 141 "phone to mouse already set.\n"); 146 142 async_answer_0(icallid, ELIMIT); 147 //async_answer_0(icallid, EOK);148 143 return; 149 144 } … … 224 219 /*----------------------------------------------------------------------------*/ 225 220 226 static bool usb_mouse_process_report(usb_hid_dev_t *hid_dev, uint8_t *buffer, 227 size_t buffer_size) 228 { 229 usb_mouse_t *mouse_dev = (usb_mouse_t *)hid_dev->data; 221 static bool usb_mouse_process_report(usb_hid_dev_t *hid_dev, 222 usb_mouse_t *mouse_dev, uint8_t *buffer, 223 size_t buffer_size) 224 { 225 assert(mouse_dev != NULL); 230 226 231 227 usb_log_debug2("got buffer: %s.\n", … … 378 374 /*----------------------------------------------------------------------------*/ 379 375 380 static int usb_mouse_create_function(usb_hid_dev_t *hid_dev) 381 { 376 static int usb_mouse_create_function(usb_hid_dev_t *hid_dev, usb_mouse_t *mouse) 377 { 378 assert(hid_dev != NULL); 379 assert(mouse != NULL); 380 382 381 /* Create the function exposed under /dev/devices. */ 383 382 usb_log_debug("Creating DDF function %s...\n", HID_MOUSE_FUN_NAME); … … 389 388 } 390 389 391 /* 392 * Store the initialized HID device and HID ops 393 * to the DDF function. 394 */ 395 fun->ops = &hid_dev->ops; 396 fun->driver_data = hid_dev; // TODO: maybe change to hid_dev->data 390 fun->ops = &mouse->ops; 391 fun->driver_data = mouse; // TODO: maybe change to hid_dev->data 397 392 398 393 int rc = ddf_fun_bind(fun); … … 431 426 * to the DDF function. 432 427 */ 433 fun->ops = & hid_dev->ops;428 fun->ops = &mouse->ops; 434 429 fun->driver_data = hid_dev; // TODO: maybe change to hid_dev->data 435 430 … … 458 453 /*----------------------------------------------------------------------------*/ 459 454 460 int usb_mouse_init(usb_hid_dev_t *hid_dev )455 int usb_mouse_init(usb_hid_dev_t *hid_dev, void **data) 461 456 { 462 457 usb_log_debug("Initializing HID/Mouse structure...\n"); … … 485 480 486 481 // save the Mouse device structure into the HID device structure 487 hid_dev->data = mouse_dev;482 *data = mouse_dev; 488 483 489 484 // set handler for incoming calls 490 hid_dev->ops.default_handler = default_connection_handler; 485 // TODO: must be one for each subdriver!! 486 mouse_dev->ops.default_handler = default_connection_handler; 491 487 492 488 // TODO: how to know if the device supports the request??? … … 494 490 // hid_dev->usb_dev->interface_no, IDLE_RATE); 495 491 496 int rc = usb_mouse_create_function(hid_dev );492 int rc = usb_mouse_create_function(hid_dev, mouse_dev); 497 493 if (rc != EOK) { 498 494 usb_mouse_free(&mouse_dev); … … 505 501 /*----------------------------------------------------------------------------*/ 506 502 507 bool usb_mouse_polling_callback(usb_hid_dev_t *hid_dev, uint8_t *buffer,508 size_t buffer_size)503 bool usb_mouse_polling_callback(usb_hid_dev_t *hid_dev, void *data, 504 uint8_t *buffer, size_t buffer_size) 509 505 { 510 506 usb_log_debug("usb_mouse_polling_callback()\n"); 511 507 usb_debug_str_buffer(buffer, buffer_size, 0); 512 508 513 if (hid_dev == NULL ) {509 if (hid_dev == NULL || data == NULL) { 514 510 usb_log_error("Missing argument to the mouse polling callback." 515 511 "\n"); … … 517 513 } 518 514 519 if (hid_dev->data == NULL) { 520 usb_log_error("Wrong argument to the mouse polling callback." 521 "\n"); 522 return false; 523 } 524 525 return usb_mouse_process_report(hid_dev, buffer, buffer_size); 526 } 527 528 /*----------------------------------------------------------------------------*/ 529 530 void usb_mouse_deinit(usb_hid_dev_t *hid_dev) 531 { 532 usb_mouse_free((usb_mouse_t **)&hid_dev->data); 515 usb_mouse_t *mouse_dev = (usb_mouse_t *)data; 516 517 return usb_mouse_process_report(hid_dev, mouse_dev, buffer, 518 buffer_size); 519 } 520 521 /*----------------------------------------------------------------------------*/ 522 523 void usb_mouse_deinit(usb_hid_dev_t *hid_dev, void *data) 524 { 525 if (data != NULL) { 526 usb_mouse_free((usb_mouse_t **)&data); 527 } 533 528 } 534 529
Note:
See TracChangeset
for help on using the changeset viewer.