Changes in / [98e15b1:6ab7f3e9] in mainline
- Location:
- uspace
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ehci-hcd/hc_iface.c
r98e15b1 r6ab7f3e9 48 48 methodname, __FILE__, __LINE__) 49 49 50 /** Reserve default address. 51 * 52 * This function may block the caller. 53 * 54 * @param[in] fun Device function the action was invoked on. 55 * @param[in] speed Speed of the device for which the default address is 56 * reserved. 57 * @return Error code. 58 */ 59 static int reserve_default_address(ddf_fun_t *fun, usb_speed_t speed) 60 { 61 UNSUPPORTED("reserve_default_address"); 62 63 return ENOTSUP; 64 } 65 66 /** Release default address. 67 * 68 * @param[in] fun Device function the action was invoked on. 69 * @return Error code. 70 */ 71 static int release_default_address(ddf_fun_t *fun) 72 { 73 UNSUPPORTED("release_default_address"); 74 75 return ENOTSUP; 76 } 77 50 78 /** Found free USB address. 51 79 * … … 304 332 /** Host controller interface implementation for EHCI. */ 305 333 usbhc_iface_t ehci_hc_iface = { 334 .reserve_default_address = reserve_default_address, 335 .release_default_address = release_default_address, 306 336 .request_address = request_address, 307 337 .bind_address = bind_address, -
uspace/drv/usbhub/usbhub.c
r98e15b1 r6ab7f3e9 515 515 fibril_mutex_unlock(&hub->pending_ops_mutex); 516 516 517 usb_device_destroy(hub->usb_device);518 519 517 free(hub->ports); 520 518 free(hub); -
uspace/drv/usbmouse/init.c
r98e15b1 r6ab7f3e9 39 39 #include <usb/hid/hid.h> 40 40 #include <usb/dev/request.h> 41 #include <usb/hid/request.h>42 41 #include <errno.h> 43 42 … … 127 126 128 127 /* Set the boot protocol. */ 129 rc = usbhid_req_set_protocol(&dev->ctrl_pipe, dev->interface_no, 130 USB_HID_PROTOCOL_BOOT); 128 rc = usb_control_request_set(&dev->ctrl_pipe, 129 USB_REQUEST_TYPE_CLASS, USB_REQUEST_RECIPIENT_INTERFACE, 130 USB_HIDREQ_SET_PROTOCOL, USB_HID_PROTOCOL_BOOT, dev->interface_no, 131 NULL, 0); 131 132 if (rc != EOK) { 132 133 goto leave; -
uspace/drv/usbmouse/mouse.c
r98e15b1 r6ab7f3e9 117 117 async_hangup(mouse->console_phone); 118 118 mouse->console_phone = -1; 119 120 usb_device_destroy(dev);121 119 } 122 120 -
uspace/lib/drv/include/usbhc_iface.h
r98e15b1 r6ab7f3e9 212 212 /** USB host controller communication interface. */ 213 213 typedef struct { 214 int (*reserve_default_address)(ddf_fun_t *, usb_speed_t); 215 int (*release_default_address)(ddf_fun_t *); 214 216 int (*request_address)(ddf_fun_t *, usb_speed_t, usb_address_t *); 215 217 int (*bind_address)(ddf_fun_t *, usb_address_t, devman_handle_t); -
uspace/lib/usbdev/include/usb/dev/driver.h
r98e15b1 r6ab7f3e9 168 168 int usb_device_destroy_pipes(ddf_dev_t *, usb_endpoint_mapping_t *, size_t); 169 169 int usb_device_create(ddf_dev_t *, usb_endpoint_description_t **, usb_device_t **, const char **); 170 void usb_device_destroy(usb_device_t *);171 170 172 171 size_t usb_interface_count_alternates(uint8_t *, size_t, uint8_t); -
uspace/lib/usbdev/src/devdrv.c
r98e15b1 r6ab7f3e9 533 533 } 534 534 535 /** Destroy instance of a USB device.536 *537 * @param dev Device to be destroyed.538 */539 void usb_device_destroy(usb_device_t *dev)540 {541 if (dev == NULL) {542 return;543 }544 545 /* Ignore errors and hope for the best. */546 usb_device_destroy_pipes(dev->ddf_dev, dev->pipes, dev->pipes_count);547 if (dev->descriptors.configuration != NULL) {548 free(dev->descriptors.configuration);549 }550 551 if (dev->alternate_interfaces != NULL) {552 if (dev->alternate_interfaces->alternatives != NULL) {553 free(dev->alternate_interfaces->alternatives);554 }555 free(dev->alternate_interfaces);556 }557 558 free(dev);559 }560 561 535 /** 562 536 * @} -
uspace/srv/hid/console/console.c
r98e15b1 r6ab7f3e9 57 57 #include <io/style.h> 58 58 #include <io/screenbuffer.h> 59 #include <inttypes.h>60 59 61 60 #include "console.h" … … 68 67 /** Interval for checking for new keyboard (1/4s). */ 69 68 #define HOTPLUG_WATCH_INTERVAL (1000 * 250) 70 71 /* Kernel defines 32 but does not export it. */72 #define MAX_IPC_OUTGOING_PHONES 12873 /** To allow proper phone closing. */74 static ipc_callid_t driver_phones[MAX_IPC_OUTGOING_PHONES] = { 0 };75 69 76 70 /** Phone to the keyboard driver. */ … … 96 90 contents and related settings. */ 97 91 } console_t; 98 99 100 92 101 93 /** Array of data for virtual consoles */ … … 409 401 } 410 402 411 static void close_driver_phone(ipc_callid_t hash)412 {413 int i;414 for (i = 0; i < MAX_IPC_OUTGOING_PHONES; i++) {415 if (driver_phones[i] == hash) {416 printf("Device %" PRIxn " gone.\n", hash);417 driver_phones[i] = 0;418 async_hangup(i);419 return;420 }421 }422 }423 424 403 /** Handler for keyboard */ 425 404 static void keyboard_events(ipc_callid_t iid, ipc_call_t *icall) … … 436 415 case IPC_M_PHONE_HUNGUP: 437 416 /* TODO: Handle hangup */ 438 close_driver_phone(iid);439 417 return; 440 418 case KBD_EVENT: … … 480 458 case IPC_M_PHONE_HUNGUP: 481 459 /* TODO: Handle hangup */ 482 close_driver_phone(iid);483 460 return; 484 461 case MEVENT_BUTTON: … … 738 715 } 739 716 740 static int async_connect_to_me_hack(int phone, sysarg_t arg1, sysarg_t arg2,741 sysarg_t arg3, async_client_conn_t client_receiver, ipc_callid_t *hash)742 {743 sysarg_t task_hash;744 sysarg_t phone_hash;745 int rc = async_req_3_5(phone, IPC_M_CONNECT_TO_ME, arg1, arg2, arg3,746 NULL, NULL, NULL, &task_hash, &phone_hash);747 if (rc != EOK)748 return rc;749 750 if (client_receiver != NULL)751 async_new_connection(task_hash, phone_hash, phone_hash, NULL,752 client_receiver);753 754 if (hash != NULL) {755 *hash = phone_hash;756 }757 758 return EOK;759 }760 761 717 static int connect_keyboard_or_mouse(const char *devname, 762 718 async_client_conn_t handler, const char *path) … … 773 729 } 774 730 775 ipc_callid_t hash; 776 int rc = async_connect_to_me_hack(phone, SERVICE_CONSOLE, 0, phone, 777 handler, &hash); 731 int rc = async_connect_to_me(phone, SERVICE_CONSOLE, 0, 0, handler); 778 732 if (rc != EOK) { 779 733 printf(NAME ": " \ … … 783 737 } 784 738 785 driver_phones[phone] = hash; 786 787 printf(NAME ": found %s \"%s\" (%" PRIxn ").\n", devname, path, hash); 739 printf(NAME ": found %s \"%s\".\n", devname, path); 788 740 789 741 return phone;
Note:
See TracChangeset
for help on using the changeset viewer.