Changeset c05642d in mainline for uspace/drv/bus/usb/usbhid/kbd/kbddev.c
- Timestamp:
- 2011-09-07T00:03:26Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5081276
- Parents:
- bb74dabe (diff), 038b289 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhid/kbd/kbddev.c
rbb74dabe rc05642d 734 734 int rc = usb_kbd_create_function(hid_dev, kbd_dev); 735 735 if (rc != EOK) { 736 usb_kbd_ free(&kbd_dev);736 usb_kbd_destroy(kbd_dev); 737 737 return rc; 738 738 } … … 779 779 * @param kbd_dev Pointer to the structure to be destroyed. 780 780 */ 781 void usb_kbd_ free(usb_kbd_t **kbd_dev)782 { 783 if (kbd_dev == NULL || *kbd_dev == NULL) {781 void usb_kbd_destroy(usb_kbd_t *kbd_dev) 782 { 783 if (kbd_dev == NULL) { 784 784 return; 785 785 } 786 786 787 787 // hangup phone to the console 788 async_obsolete_hangup( (*kbd_dev)->console_phone);789 790 if ( (*kbd_dev)->repeat_mtx != NULL) {788 async_obsolete_hangup(kbd_dev->console_phone); 789 790 if (kbd_dev->repeat_mtx != NULL) { 791 791 //assert(!fibril_mutex_is_locked((*kbd_dev)->repeat_mtx)); 792 792 // FIXME - the fibril_mutex_is_locked may not cause 793 793 // fibril scheduling 794 while (fibril_mutex_is_locked( (*kbd_dev)->repeat_mtx)) {}795 free( (*kbd_dev)->repeat_mtx);794 while (fibril_mutex_is_locked(kbd_dev->repeat_mtx)) {} 795 free(kbd_dev->repeat_mtx); 796 796 } 797 797 798 798 // free all buffers 799 if ((*kbd_dev)->keys != NULL) { 800 free((*kbd_dev)->keys); 801 } 802 if ((*kbd_dev)->keys_old != NULL) { 803 free((*kbd_dev)->keys_old); 804 } 805 if ((*kbd_dev)->led_data != NULL) { 806 free((*kbd_dev)->led_data); 807 } 808 if ((*kbd_dev)->led_path != NULL) { 809 usb_hid_report_path_free((*kbd_dev)->led_path); 810 } 811 if ((*kbd_dev)->output_buffer != NULL) { 812 usb_hid_report_output_free((*kbd_dev)->output_buffer); 813 } 814 815 free(*kbd_dev); 816 *kbd_dev = NULL; 799 if (kbd_dev->keys != NULL) { 800 free(kbd_dev->keys); 801 } 802 if (kbd_dev->keys_old != NULL) { 803 free(kbd_dev->keys_old); 804 } 805 if (kbd_dev->led_data != NULL) { 806 free(kbd_dev->led_data); 807 } 808 if (kbd_dev->led_path != NULL) { 809 usb_hid_report_path_free(kbd_dev->led_path); 810 } 811 if (kbd_dev->output_buffer != NULL) { 812 usb_hid_report_output_free(kbd_dev->output_buffer); 813 } 817 814 } 818 815 … … 830 827 usb_kbd_mark_unusable(kbd_dev); 831 828 } else { 832 usb_kbd_ free(&kbd_dev);829 usb_kbd_destroy(kbd_dev); 833 830 } 834 831 }
Note:
See TracChangeset
for help on using the changeset viewer.