Lines Matching refs:evdev
106 struct evdev_dev *evdev = dev->si_drv1; in evdev_open() local
111 if (evdev == NULL) in evdev_open()
115 buffer_size = evdev->ev_report_size * DEF_RING_REPORTS; in evdev_open()
126 client->ec_evdev = evdev; in evdev_open()
130 ret = EVDEV_LIST_LOCK_SIG(evdev); in evdev_open()
137 ret = evdev_register_client(evdev, client); in evdev_open()
138 EVDEV_LIST_UNLOCK(evdev); in evdev_open()
257 struct evdev_dev *evdev = dev->si_drv1; in evdev_write() local
275 if (client->ec_revoked || evdev == NULL) in evdev_write()
295 ret = evdev_inject_event(evdev, event.t32.type, in evdev_write()
299 ret = evdev_inject_event(evdev, event.t.type, in evdev_write()
397 struct evdev_dev *evdev = dev->si_drv1; in evdev_ioctl() local
409 if (client->ec_revoked || evdev == NULL) in evdev_ioctl()
416 if (evdev->ev_kdb_active) { in evdev_ioctl()
417 EVDEV_LOCK(evdev); in evdev_ioctl()
418 if (evdev->ev_kdb_active) { in evdev_ioctl()
419 evdev->ev_kdb_active = false; in evdev_ioctl()
420 if (evdev->ev_lock_type == EV_LOCK_EXT_EPOCH) in evdev_ioctl()
422 evdev_restore_after_kdb(evdev); in evdev_ioctl()
423 if (evdev->ev_lock_type == EV_LOCK_EXT_EPOCH) in evdev_ioctl()
426 EVDEV_UNLOCK(evdev); in evdev_ioctl()
468 evdev->ev_id.bustype, evdev->ev_id.vendor, in evdev_ioctl()
469 evdev->ev_id.product); in evdev_ioctl()
470 memcpy(data, &evdev->ev_id, sizeof(struct input_id)); in evdev_ioctl()
474 if (!evdev_event_supported(evdev, EV_REP)) in evdev_ioctl()
477 memcpy(data, evdev->ev_rep, sizeof(evdev->ev_rep)); in evdev_ioctl()
481 if (!evdev_event_supported(evdev, EV_REP)) in evdev_ioctl()
484 evdev_inject_event(evdev, EV_REP, REP_DELAY, ((int *)data)[0]); in evdev_ioctl()
485 evdev_inject_event(evdev, EV_REP, REP_PERIOD, in evdev_ioctl()
494 if (evdev->ev_methods == NULL || in evdev_ioctl()
495 evdev->ev_methods->ev_get_keycode == NULL) in evdev_ioctl()
499 evdev->ev_methods->ev_get_keycode(evdev, ke); in evdev_ioctl()
507 if (evdev->ev_methods == NULL || in evdev_ioctl()
508 evdev->ev_methods->ev_set_keycode == NULL) in evdev_ioctl()
512 evdev->ev_methods->ev_set_keycode(evdev, ke); in evdev_ioctl()
516 if (evdev->ev_absinfo == NULL) in evdev_ioctl()
519 memcpy(data, &evdev->ev_absinfo[cmd - EVIOCGABS(0)], in evdev_ioctl()
524 if (evdev->ev_absinfo == NULL) in evdev_ioctl()
532 EVDEV_LOCK(evdev); in evdev_ioctl()
533 evdev_set_absinfo(evdev, code, (struct input_absinfo *)data); in evdev_ioctl()
534 EVDEV_UNLOCK(evdev); in evdev_ioctl()
544 EVDEV_LOCK(evdev); in evdev_ioctl()
546 ret = evdev_grab_client(evdev, client); in evdev_ioctl()
548 ret = evdev_release_client(evdev, client); in evdev_ioctl()
549 EVDEV_UNLOCK(evdev); in evdev_ioctl()
556 EVDEV_LIST_LOCK(evdev); in evdev_ioctl()
558 evdev_dispose_client(evdev, client); in evdev_ioctl()
561 EVDEV_LIST_UNLOCK(evdev); in evdev_ioctl()
581 limit = MIN(strlen(evdev->ev_name) + 1, len); in evdev_ioctl()
582 memcpy(data, evdev->ev_name, limit); in evdev_ioctl()
587 if (evdev->ev_shortname[0] == 0) in evdev_ioctl()
590 limit = MIN(strlen(evdev->ev_shortname) + 1, len); in evdev_ioctl()
591 memcpy(data, evdev->ev_shortname, limit); in evdev_ioctl()
596 if (evdev->ev_serial[0] == 0) in evdev_ioctl()
599 limit = MIN(strlen(evdev->ev_serial) + 1, len); in evdev_ioctl()
600 memcpy(data, evdev->ev_serial, limit); in evdev_ioctl()
606 memcpy(data, evdev->ev_prop_flags, limit); in evdev_ioctl()
612 if (evdev->ev_mt == NULL) in evdev_ioctl()
621 MIN(len / sizeof(int32_t) - 1, MAXIMAL_MT_SLOT(evdev) + 1); in evdev_ioctl()
624 evdev_mt_get_value(evdev, i, code); in evdev_ioctl()
629 EVDEV_LOCK(evdev); in evdev_ioctl()
631 memcpy(data, evdev->ev_key_states, limit); in evdev_ioctl()
632 EVDEV_UNLOCK(evdev); in evdev_ioctl()
638 EVDEV_LOCK(evdev); in evdev_ioctl()
640 memcpy(data, evdev->ev_led_states, limit); in evdev_ioctl()
641 EVDEV_UNLOCK(evdev); in evdev_ioctl()
647 EVDEV_LOCK(evdev); in evdev_ioctl()
649 memcpy(data, evdev->ev_snd_states, limit); in evdev_ioctl()
650 EVDEV_UNLOCK(evdev); in evdev_ioctl()
656 EVDEV_LOCK(evdev); in evdev_ioctl()
658 memcpy(data, evdev->ev_sw_states, limit); in evdev_ioctl()
659 EVDEV_UNLOCK(evdev); in evdev_ioctl()
667 return (evdev_ioctl_eviocgbit(evdev, type_num, len, data, td)); in evdev_ioctl()
674 evdev_ioctl_eviocgbit(struct evdev_dev *evdev, int type, int len, caddr_t data, in evdev_ioctl_eviocgbit() argument
682 bitmap = evdev->ev_type_flags; in evdev_ioctl_eviocgbit()
686 bitmap = evdev->ev_key_flags; in evdev_ioctl_eviocgbit()
690 bitmap = evdev->ev_rel_flags; in evdev_ioctl_eviocgbit()
694 bitmap = evdev->ev_abs_flags; in evdev_ioctl_eviocgbit()
698 bitmap = evdev->ev_msc_flags; in evdev_ioctl_eviocgbit()
702 bitmap = evdev->ev_led_flags; in evdev_ioctl_eviocgbit()
706 bitmap = evdev->ev_snd_flags; in evdev_ioctl_eviocgbit()
710 bitmap = evdev->ev_sw_flags; in evdev_ioctl_eviocgbit()
768 evdev_cdev_create(struct evdev_dev *evdev) in evdev_cdev_create() argument
779 mda.mda_si_drv1 = evdev; in evdev_cdev_create()
782 while ((ret = make_dev_s(&mda, &evdev->ev_cdev, "input/event%d", unit)) in evdev_cdev_create()
787 evdev->ev_unit = unit; in evdev_cdev_create()
793 evdev_cdev_destroy(struct evdev_dev *evdev) in evdev_cdev_destroy() argument
796 destroy_dev(evdev->ev_cdev); in evdev_cdev_destroy()