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