Changes in uspace/srv/hid/input/input.c [7aa94304:d5c1051] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/input/input.c
r7aa94304 rd5c1051 37 37 */ 38 38 39 #include <adt/fifo.h> 39 40 #include <adt/list.h> 40 #include <stdbool.h> 41 #include <async.h> 42 #include <config.h> 43 #include <errno.h> 44 #include <fibril.h> 41 45 #include <fibril_synch.h> 46 #include <io/chardev.h> 47 #include <io/console.h> 48 #include <io/keycode.h> 42 49 #include <ipc/services.h> 43 50 #include <ipc/input.h> 44 #include <config.h> 51 #include <loc.h> 52 #include <ns.h> 53 #include <stdbool.h> 45 54 #include <stdio.h> 46 55 #include <stdlib.h> 47 #include <ns.h>48 #include <async.h>49 #include <errno.h>50 #include <adt/fifo.h>51 #include <io/console.h>52 #include <io/keycode.h>53 #include <loc.h>54 56 #include <str_error.h> 55 #include <char_dev_iface.h> 56 #include <fibril.h> 57 #include "layout.h" 57 58 #include "input.h" 58 59 #include "kbd.h" 59 60 #include "kbd_port.h" 60 61 #include "kbd_ctl.h" 62 #include "layout.h" 61 63 #include "mouse.h" 62 64 #include "mouse_proto.h" 63 65 #include "serial.h" 64 #include "input.h"65 66 66 67 #define NUM_LAYOUTS 4 … … 364 365 } 365 366 366 static void kconsole_event_handler(ipc_callid_t callid, ipc_call_t *call, 367 void *arg) 367 static void kconsole_event_handler(ipc_call_t *call, void *arg) 368 368 { 369 369 if (IPC_GET_ARG1(*call)) { … … 458 458 } 459 459 460 /** Add new legacy mouse device. */461 static void mouse_add_dev(mouse_port_ops_t *port, mouse_proto_ops_t *proto)462 {463 mouse_dev_t *mdev = mouse_dev_new();464 if (mdev == NULL)465 return;466 467 mdev->port_ops = port;468 mdev->proto_ops = proto;469 mdev->svc_id = 0;470 471 /* Initialize port driver. */472 if ((*mdev->port_ops->init)(mdev) != 0)473 goto fail;474 475 /* Initialize protocol driver. */476 if ((*mdev->proto_ops->init)(mdev) != 0) {477 /* XXX Uninit port */478 goto fail;479 }480 481 list_append(&mdev->link, &mouse_devs);482 return;483 484 fail:485 free(mdev);486 }487 488 460 /** Add new kbdev device. 489 461 * … … 514 486 list_append(&kdev->link, &kbd_devs); 515 487 *kdevp = kdev; 516 return EOK;488 return 0; 517 489 518 490 fail: … … 551 523 list_append(&mdev->link, &mouse_devs); 552 524 *mdevp = mdev; 553 return EOK;525 return 0; 554 526 555 527 fail: … … 564 536 while (true) { 565 537 uint8_t data; 566 567 char_dev_read(sdev->sess, &data, sizeof(data)); 538 size_t nread; 539 540 chardev_read(sdev->chardev, &data, sizeof(data), &nread); 541 /* XXX Handle error */ 568 542 kbd_push_data(sdev->kdev, data); 569 543 } … … 580 554 { 581 555 bool match = false; 556 int rc; 582 557 583 558 serial_dev_t *sdev = serial_dev_new(); … … 587 562 sdev->kdev->svc_id = service_id; 588 563 589 intrc = loc_service_get_name(service_id, &sdev->kdev->svc_name);564 rc = loc_service_get_name(service_id, &sdev->kdev->svc_name); 590 565 if (rc != EOK) 591 566 goto fail; … … 611 586 IPC_FLAG_BLOCKING); 612 587 588 rc = chardev_open(sdev->sess, &sdev->chardev); 589 if (rc != EOK) { 590 async_hangup(sdev->sess); 591 sdev->sess = NULL; 592 list_remove(&sdev->link); 593 goto fail; 594 } 595 613 596 fid_t fid = fibril_create(serial_consumer, sdev); 614 597 fibril_add_ready(fid); … … 616 599 617 600 *sdevp = sdev; 618 return EOK;601 return 0; 619 602 620 603 fail: … … 643 626 kbd_add_dev(&chardev_port, &stty_ctl); 644 627 #endif 645 #if defined(UARCH_ppc32)646 kbd_add_dev(&adb_port, &apple_ctl);647 #endif648 628 #if defined(UARCH_sparc64) && defined(PROCESSOR_sun4v) 649 629 kbd_add_dev(&chardev_port, &stty_ctl); … … 651 631 /* Silence warning on abs32le about kbd_add_dev() being unused */ 652 632 (void) kbd_add_dev; 653 }654 655 /** Add legacy drivers/devices. */656 static void mouse_add_legacy_devs(void)657 {658 /*659 * Need to add these drivers based on config unless we can probe660 * them automatically.661 */662 #if defined(UARCH_ppc32)663 mouse_add_dev(&adb_mouse_port, &adb_proto);664 #endif665 /* Silence warning on abs32le about mouse_add_dev() being unused */666 (void) mouse_add_dev;667 633 } 668 634 … … 704 670 if (!already_known) { 705 671 kbd_dev_t *kdev; 706 if (kbd_add_kbdev(svcs[i], &kdev) == EOK) {672 if (kbd_add_kbdev(svcs[i], &kdev) == 0) { 707 673 printf("%s: Connected keyboard device '%s'\n", 708 674 NAME, kdev->svc_name); … … 755 721 if (!already_known) { 756 722 mouse_dev_t *mdev; 757 if (mouse_add_mousedev(svcs[i], &mdev) == EOK) {723 if (mouse_add_mousedev(svcs[i], &mdev) == 0) { 758 724 printf("%s: Connected mouse device '%s'\n", 759 725 NAME, mdev->svc_name); … … 806 772 if (!already_known) { 807 773 serial_dev_t *sdev; 808 if (serial_add_srldev(svcs[i], &sdev) == EOK) {774 if (serial_add_srldev(svcs[i], &sdev) == 0) { 809 775 printf("%s: Connected serial device '%s'\n", 810 776 NAME, sdev->kdev->svc_name); … … 861 827 int rc = loc_register_cat_change_cb(cat_change_cb); 862 828 if (rc != EOK) { 863 printf("%s: Failed registering callback for device discovery ."864 " (%d)\n", NAME, rc);829 printf("%s: Failed registering callback for device discovery: " 830 "%s\n", NAME, str_error(rc)); 865 831 return rc; 866 832 } … … 894 860 /* Add legacy keyboard devices. */ 895 861 kbd_add_legacy_devs(); 896 897 /* Add legacy mouse devices. */898 mouse_add_legacy_devs();899 862 900 863 /* Register driver */
Note:
See TracChangeset
for help on using the changeset viewer.