Changeset 65b458c4 in mainline for uspace/drv/usbhid/kbd/kbddev.c
- Timestamp:
- 2011-05-13T12:44:37Z (14 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/kbd/kbddev.c
r97cb542 r65b458c4 252 252 sysarg_t method = IPC_GET_IMETHOD(*icall); 253 253 254 usb_hid_dev_t *hid_dev = (usb_hid_dev_t *)fun->driver_data; 255 256 if (hid_dev == NULL || hid_dev->data == NULL) { 254 usb_kbd_t *kbd_dev = (usb_kbd_t *)fun->driver_data; 255 if (kbd_dev == NULL) { 257 256 usb_log_debug("default_connection_handler: " 258 257 "Missing parameter.\n"); … … 260 259 return; 261 260 } 262 263 assert(hid_dev != NULL);264 assert(hid_dev->data != NULL);265 usb_kbd_t *kbd_dev = (usb_kbd_t *)hid_dev->data;266 261 267 262 if (method == IPC_M_CONNECT_TO_ME) { … … 663 658 * usb_hid_parse_report(). 664 659 */ 665 static void usb_kbd_process_data(usb_hid_dev_t *hid_dev, 660 static void usb_kbd_process_data(usb_hid_dev_t *hid_dev, usb_kbd_t *kbd_dev, 666 661 uint8_t *buffer, size_t actual_size) 667 662 { 668 663 assert(hid_dev->report != NULL); 669 664 assert(hid_dev != NULL); 670 assert(hid_dev->data != NULL); 671 672 usb_kbd_t *kbd_dev = (usb_kbd_t *)hid_dev->data; 665 assert(kbd_dev != NULL); 673 666 674 667 usb_log_debug("Calling usb_hid_parse_report() with " … … 775 768 /*----------------------------------------------------------------------------*/ 776 769 777 static int usb_kbd_create_function(usb_hid_dev_t *hid_dev )770 static int usb_kbd_create_function(usb_hid_dev_t *hid_dev, usb_kbd_t *kbd_dev) 778 771 { 779 772 assert(hid_dev != NULL); 780 773 assert(hid_dev->usb_dev != NULL); 774 assert(kbd_dev != NULL); 781 775 782 776 /* Create the function exposed under /dev/devices. */ … … 793 787 * to the DDF function. 794 788 */ 795 fun->ops = & hid_dev->ops;796 fun->driver_data = hid_dev; // TODO: maybe change to hid_dev->data789 fun->ops = &kbd_dev->ops; 790 fun->driver_data = kbd_dev; 797 791 798 792 int rc = ddf_fun_bind(fun); … … 841 835 * @return Other value inherited from function usbhid_dev_init(). 842 836 */ 843 int usb_kbd_init(usb_hid_dev_t *hid_dev )837 int usb_kbd_init(usb_hid_dev_t *hid_dev, void **data) 844 838 { 845 839 usb_log_debug("Initializing HID/KBD structure...\n"); … … 954 948 955 949 // save the KBD device structure into the HID device structure 956 hid_dev->data = kbd_dev; 950 //hid_dev->data = kbd_dev; 951 *data = kbd_dev; 957 952 958 953 // set handler for incoming calls 959 hid_dev->ops.default_handler = default_connection_handler;954 kbd_dev->ops.default_handler = default_connection_handler; 960 955 961 956 /* … … 982 977 983 978 usb_log_debug("Creating KBD function...\n"); 984 int rc = usb_kbd_create_function(hid_dev );979 int rc = usb_kbd_create_function(hid_dev, kbd_dev); 985 980 if (rc != EOK) { 986 981 usb_kbd_free(&kbd_dev); … … 993 988 /*----------------------------------------------------------------------------*/ 994 989 995 bool usb_kbd_polling_callback(usb_hid_dev_t *hid_dev, uint8_t *buffer,996 size_t buffer_size)997 { 998 if (hid_dev == NULL || buffer == NULL ) {990 bool usb_kbd_polling_callback(usb_hid_dev_t *hid_dev, void *data, 991 uint8_t *buffer, size_t buffer_size) 992 { 993 if (hid_dev == NULL || buffer == NULL || data == NULL) { 999 994 // do not continue polling (???) 1000 995 return false; 1001 996 } 1002 997 998 usb_kbd_t *kbd_dev = (usb_kbd_t *)data; 999 assert(kbd_dev != NULL); 1000 1003 1001 // TODO: add return value from this function 1004 usb_kbd_process_data(hid_dev, buffer, buffer_size);1002 usb_kbd_process_data(hid_dev, kbd_dev, buffer, buffer_size); 1005 1003 1006 1004 return true; … … 1065 1063 /*----------------------------------------------------------------------------*/ 1066 1064 1067 void usb_kbd_deinit(usb_hid_dev_t *hid_dev )1065 void usb_kbd_deinit(usb_hid_dev_t *hid_dev, void *data) 1068 1066 { 1069 1067 if (hid_dev == NULL) { … … 1071 1069 } 1072 1070 1073 if ( hid_dev->data != NULL) {1074 usb_kbd_t *kbd_dev = (usb_kbd_t *) hid_dev->data;1071 if (data != NULL) { 1072 usb_kbd_t *kbd_dev = (usb_kbd_t *)data; 1075 1073 if (usb_kbd_is_initialized(kbd_dev)) { 1076 1074 usb_kbd_mark_unusable(kbd_dev); 1077 1075 } else { 1078 1076 usb_kbd_free(&kbd_dev); 1079 hid_dev->data = NULL;1080 1077 } 1081 1078 }
Note:
See TracChangeset
for help on using the changeset viewer.