Lines Matching refs:evdev

105 	struct evdev_dev *evdev = dev->si_drv1;  in evdev_open()  local
110 if (evdev == NULL) in evdev_open()
114 buffer_size = evdev->ev_report_size * DEF_RING_REPORTS; in evdev_open()
125 client->ec_evdev = evdev; in evdev_open()
129 ret = EVDEV_LIST_LOCK_SIG(evdev); in evdev_open()
136 ret = evdev_register_client(evdev, client); in evdev_open()
137 EVDEV_LIST_UNLOCK(evdev); in evdev_open()
256 struct evdev_dev *evdev = dev->si_drv1; in evdev_write() local
274 if (client->ec_revoked || evdev == NULL) in evdev_write()
294 ret = evdev_inject_event(evdev, event.t32.type, in evdev_write()
298 ret = evdev_inject_event(evdev, event.t.type, in evdev_write()
396 struct evdev_dev *evdev = dev->si_drv1; in evdev_ioctl() local
408 if (client->ec_revoked || evdev == NULL) in evdev_ioctl()
415 if (evdev->ev_kdb_active) { in evdev_ioctl()
416 EVDEV_LOCK(evdev); in evdev_ioctl()
417 if (evdev->ev_kdb_active) { in evdev_ioctl()
418 evdev->ev_kdb_active = false; in evdev_ioctl()
419 if (evdev->ev_lock_type == EV_LOCK_EXT_EPOCH) in evdev_ioctl()
421 evdev_restore_after_kdb(evdev); in evdev_ioctl()
422 if (evdev->ev_lock_type == EV_LOCK_EXT_EPOCH) in evdev_ioctl()
425 EVDEV_UNLOCK(evdev); in evdev_ioctl()
467 evdev->ev_id.bustype, evdev->ev_id.vendor, in evdev_ioctl()
468 evdev->ev_id.product); in evdev_ioctl()
469 memcpy(data, &evdev->ev_id, sizeof(struct input_id)); in evdev_ioctl()
473 if (!evdev_event_supported(evdev, EV_REP)) in evdev_ioctl()
476 memcpy(data, evdev->ev_rep, sizeof(evdev->ev_rep)); in evdev_ioctl()
480 if (!evdev_event_supported(evdev, EV_REP)) in evdev_ioctl()
483 evdev_inject_event(evdev, EV_REP, REP_DELAY, ((int *)data)[0]); in evdev_ioctl()
484 evdev_inject_event(evdev, EV_REP, REP_PERIOD, in evdev_ioctl()
493 if (evdev->ev_methods == NULL || in evdev_ioctl()
494 evdev->ev_methods->ev_get_keycode == NULL) in evdev_ioctl()
498 evdev->ev_methods->ev_get_keycode(evdev, ke); in evdev_ioctl()
506 if (evdev->ev_methods == NULL || in evdev_ioctl()
507 evdev->ev_methods->ev_set_keycode == NULL) in evdev_ioctl()
511 evdev->ev_methods->ev_set_keycode(evdev, ke); in evdev_ioctl()
515 if (evdev->ev_absinfo == NULL) in evdev_ioctl()
518 memcpy(data, &evdev->ev_absinfo[cmd - EVIOCGABS(0)], in evdev_ioctl()
523 if (evdev->ev_absinfo == NULL) in evdev_ioctl()
531 EVDEV_LOCK(evdev); in evdev_ioctl()
532 evdev_set_absinfo(evdev, code, (struct input_absinfo *)data); in evdev_ioctl()
533 EVDEV_UNLOCK(evdev); in evdev_ioctl()
543 EVDEV_LOCK(evdev); in evdev_ioctl()
545 ret = evdev_grab_client(evdev, client); in evdev_ioctl()
547 ret = evdev_release_client(evdev, client); in evdev_ioctl()
548 EVDEV_UNLOCK(evdev); in evdev_ioctl()
555 EVDEV_LIST_LOCK(evdev); in evdev_ioctl()
557 evdev_dispose_client(evdev, client); in evdev_ioctl()
560 EVDEV_LIST_UNLOCK(evdev); in evdev_ioctl()
580 limit = MIN(strlen(evdev->ev_name) + 1, len); in evdev_ioctl()
581 memcpy(data, evdev->ev_name, limit); in evdev_ioctl()
586 if (evdev->ev_shortname[0] == 0) in evdev_ioctl()
589 limit = MIN(strlen(evdev->ev_shortname) + 1, len); in evdev_ioctl()
590 memcpy(data, evdev->ev_shortname, limit); in evdev_ioctl()
595 if (evdev->ev_serial[0] == 0) in evdev_ioctl()
598 limit = MIN(strlen(evdev->ev_serial) + 1, len); in evdev_ioctl()
599 memcpy(data, evdev->ev_serial, limit); in evdev_ioctl()
605 memcpy(data, evdev->ev_prop_flags, limit); in evdev_ioctl()
611 if (evdev->ev_mt == NULL) in evdev_ioctl()
620 MIN(len / sizeof(int32_t) - 1, MAXIMAL_MT_SLOT(evdev) + 1); in evdev_ioctl()
623 evdev_mt_get_value(evdev, i, code); in evdev_ioctl()
628 EVDEV_LOCK(evdev); in evdev_ioctl()
630 memcpy(data, evdev->ev_key_states, limit); in evdev_ioctl()
631 EVDEV_UNLOCK(evdev); in evdev_ioctl()
637 EVDEV_LOCK(evdev); in evdev_ioctl()
639 memcpy(data, evdev->ev_led_states, limit); in evdev_ioctl()
640 EVDEV_UNLOCK(evdev); in evdev_ioctl()
646 EVDEV_LOCK(evdev); in evdev_ioctl()
648 memcpy(data, evdev->ev_snd_states, limit); in evdev_ioctl()
649 EVDEV_UNLOCK(evdev); in evdev_ioctl()
655 EVDEV_LOCK(evdev); in evdev_ioctl()
657 memcpy(data, evdev->ev_sw_states, limit); in evdev_ioctl()
658 EVDEV_UNLOCK(evdev); in evdev_ioctl()
666 return (evdev_ioctl_eviocgbit(evdev, type_num, len, data, td)); in evdev_ioctl()
673 evdev_ioctl_eviocgbit(struct evdev_dev *evdev, int type, int len, caddr_t data, in evdev_ioctl_eviocgbit() argument
681 bitmap = evdev->ev_type_flags; in evdev_ioctl_eviocgbit()
685 bitmap = evdev->ev_key_flags; in evdev_ioctl_eviocgbit()
689 bitmap = evdev->ev_rel_flags; in evdev_ioctl_eviocgbit()
693 bitmap = evdev->ev_abs_flags; in evdev_ioctl_eviocgbit()
697 bitmap = evdev->ev_msc_flags; in evdev_ioctl_eviocgbit()
701 bitmap = evdev->ev_led_flags; in evdev_ioctl_eviocgbit()
705 bitmap = evdev->ev_snd_flags; in evdev_ioctl_eviocgbit()
709 bitmap = evdev->ev_sw_flags; in evdev_ioctl_eviocgbit()
767 evdev_cdev_create(struct evdev_dev *evdev) in evdev_cdev_create() argument
775 mda.mda_uid = evdev->ev_cdev_uid; in evdev_cdev_create()
776 mda.mda_gid = evdev->ev_cdev_gid; in evdev_cdev_create()
777 mda.mda_mode = evdev->ev_cdev_mode; in evdev_cdev_create()
778 mda.mda_si_drv1 = evdev; in evdev_cdev_create()
781 while ((ret = make_dev_s(&mda, &evdev->ev_cdev, "input/event%d", unit)) in evdev_cdev_create()
786 evdev->ev_unit = unit; in evdev_cdev_create()
792 evdev_cdev_destroy(struct evdev_dev *evdev) in evdev_cdev_destroy() argument
795 destroy_dev(evdev->ev_cdev); in evdev_cdev_destroy()