Lines Matching refs:kbd

49 #include <dev/kbd/kbdreg.h>
110 atkbd_attach_unit(device_t dev, keyboard_t **kbd, int irq, int flags)
126 *kbd = NULL;
130 error = (*sw->init)(unit, kbd, args, flags);
133 (*sw->enable)(*kbd);
137 error = kbd_attach(*kbd);
146 state = (atkbd_state_t *)(*kbd)->kb_data;
148 atkbd_timeout(*kbd);
151 (*sw->diag)(*kbd, bootverbose);
153 EVENTHANDLER_REGISTER(shutdown_final, atkbd_shutdown_final, *kbd,
163 keyboard_t *kbd;
192 kbd = (keyboard_t *)arg;
193 if (kbdd_lock(kbd, TRUE)) {
199 kbdd_lock(kbd, FALSE);
200 if (kbdd_check_char(kbd))
201 kbdd_intr(kbd, NULL);
204 state = (atkbd_state_t *)kbd->kb_data;
255 static int set_typematic(keyboard_t *kbd);
279 #include <dev/kbd/kbdtables.h>
300 keyboard_t *kbd;
312 kbd = kbd_get_keyboard(i);
313 kbd_unregister(kbd);
314 kbd->kb_flags &= ~KB_REGISTERED;
326 kbd = NULL;
329 if (atkbd_init(ATKBD_DEFAULT, &kbd, arg, flags))
365 keyboard_t *kbd;
381 *kbdp = kbd = &default_kbd;
382 if (KBD_IS_INITIALIZED(kbd) && KBD_IS_CONFIGURED(kbd))
391 *kbdp = kbd = malloc(sizeof(*kbd), M_DEVBUF, M_NOWAIT | M_ZERO);
399 if ((kbd == NULL) || (state == NULL) || (keymap == NULL)
407 kbd = *kbdp;
408 state = (atkbd_state_t *)kbd->kb_data;
410 keymap = kbd->kb_keymap;
411 accmap = kbd->kb_accentmap;
412 fkeymap = kbd->kb_fkeytab;
413 fkeymap_size = kbd->kb_fkeytab_size;
417 if (!KBD_IS_PROBED(kbd)) {
423 kbd_init_struct(kbd, ATKBD_DRIVER_NAME, KB_OTHER, unit, flags,
429 kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
430 kbd->kb_data = (void *)state;
438 KBD_FOUND_DEVICE(kbd);
440 atkbd_clear_state(kbd);
446 KBD_PROBE_DONE(kbd);
448 if (!KBD_IS_INITIALIZED(kbd) && !(flags & KB_CONF_PROBE_ONLY)) {
449 kbd->kb_config = flags & ~KB_CONF_PROBE_ONLY;
450 if (KBD_HAS_DEVICE(kbd)
451 && init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config)
452 && (kbd->kb_config & KB_CONF_FAIL_IF_NO_KBD)) {
453 kbd_unregister(kbd);
457 atkbd_ioctl(kbd, KDSETLED, (caddr_t)&state->ks_state);
458 set_typematic(kbd);
459 delay[0] = kbd->kb_delay1;
460 delay[1] = kbd->kb_delay2;
461 atkbd_ioctl(kbd, KDSETREPEAT, (caddr_t)delay);
472 evdev_set_methods(evdev, kbd, &atkbd_evdev_methods);
490 KBD_INIT_DONE(kbd);
492 if (!KBD_IS_CONFIGURED(kbd)) {
493 if (kbd_register(kbd) < 0) {
497 KBD_CONFIG_DONE(kbd);
511 if (kbd != NULL) {
512 free(kbd, M_DEVBUF);
521 atkbd_term(keyboard_t *kbd)
523 atkbd_state_t *state = (atkbd_state_t *)kbd->kb_data;
525 kbd_unregister(kbd);
532 atkbd_intr(keyboard_t *kbd, void *arg)
534 atkbd_state_t *state = (atkbd_state_t *)kbd->kb_data;
538 if (!KBD_HAS_DEVICE(kbd)) {
543 init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config);
544 KBD_FOUND_DEVICE(kbd);
545 atkbd_ioctl(kbd, KDSETLED, (caddr_t)&state->ks_state);
546 set_typematic(kbd);
547 delay[0] = kbd->kb_delay1;
548 delay[1] = kbd->kb_delay2;
549 atkbd_ioctl(kbd, KDSETREPEAT, (caddr_t)delay);
555 if (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd)) {
557 (*kbd->kb_callback.kc_func)(kbd, KBDIO_KEYINPUT,
558 kbd->kb_callback.kc_arg);
562 c = atkbd_read_char(kbd, FALSE);
570 atkbd_test_if(keyboard_t *kbd)
576 empty_both_buffers(((atkbd_state_t *)kbd->kb_data)->kbdc, 10);
578 if (!test_controller(((atkbd_state_t *)kbd->kb_data)->kbdc))
580 else if (test_kbd_port(((atkbd_state_t *)kbd->kb_data)->kbdc) != 0)
592 atkbd_enable(keyboard_t *kbd)
597 KBD_ACTIVATE(kbd);
604 atkbd_disable(keyboard_t *kbd)
609 KBD_DEACTIVATE(kbd);
616 atkbd_read(keyboard_t *kbd, int wait)
621 c = read_kbd_data(((atkbd_state_t *)kbd->kb_data)->kbdc);
623 c = read_kbd_data_no_wait(((atkbd_state_t *)kbd->kb_data)->kbdc);
625 ++kbd->kb_count;
626 return (KBD_IS_ACTIVE(kbd) ? c : -1);
631 atkbd_check(keyboard_t *kbd)
633 if (!KBD_IS_ACTIVE(kbd))
635 return kbdc_data_ready(((atkbd_state_t *)kbd->kb_data)->kbdc);
640 atkbd_read_char(keyboard_t *kbd, int wait)
647 state = (atkbd_state_t *)kbd->kb_data;
668 ++kbd->kb_count;
810 if (kbd->kb_type == KB_84) {
825 } else if (kbd->kb_type == KB_101) {
891 action = genkbd_keyaction(kbd, keycode, scancode & 0x80,
901 atkbd_check_char(keyboard_t *kbd)
905 if (!KBD_IS_ACTIVE(kbd))
907 state = (atkbd_state_t *)kbd->kb_data;
915 atkbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg)
921 atkbd_state_t *state = kbd->kb_data;
949 state->ks_state |= KBD_LED_VAL(kbd);
955 atkbd_clear_state(kbd);
966 *(int *)arg = KBD_LED_VAL(kbd);
984 kbd->kb_keymap->n_keys > ALTGR_OFFSET) {
990 if (KBD_HAS_DEVICE(kbd)) {
1004 KBD_LED_VAL(kbd) = *(int *)arg;
1026 return atkbd_ioctl(kbd, KDSETLED, arg);
1030 if (!KBD_HAS_DEVICE(kbd))
1035 kbd->kb_delay1 = typematic_delay(i);
1036 kbd->kb_delay2 = typematic_rate(i);
1040 evdev_push_repeats(state->ks_evdev, kbd);
1054 if (!KBD_HAS_DEVICE(kbd))
1058 kbd->kb_delay1 = typematic_delay(*(int *)arg);
1059 kbd->kb_delay2 = typematic_rate(*(int *)arg);
1063 evdev_push_repeats(state->ks_evdev, kbd);
1076 return genkbd_commonioctl(kbd, cmd, arg);
1085 atkbd_lock(keyboard_t *kbd, int lock)
1087 return kbdc_lock(((atkbd_state_t *)kbd->kb_data)->kbdc, lock);
1092 atkbd_clear_state(keyboard_t *kbd)
1096 state = (atkbd_state_t *)kbd->kb_data;
1109 atkbd_get_state(keyboard_t *kbd, void *buf, size_t len)
1115 bcopy(kbd->kb_data, buf, sizeof(atkbd_state_t));
1121 atkbd_set_state(keyboard_t *kbd, void *buf, size_t len)
1125 if (((atkbd_state_t *)kbd->kb_data)->kbdc
1128 bcopy(buf, kbd->kb_data, sizeof(atkbd_state_t));
1133 atkbd_poll(keyboard_t *kbd, int on)
1138 state = (atkbd_state_t *)kbd->kb_data;
1152 keyboard_t *kbd = v;
1153 KBDC kbdc = ((atkbd_state_t *)kbd->kb_data)->kbdc;
1208 set_typematic(keyboard_t *kbd)
1211 atkbd_state_t *state = kbd->kb_data;
1216 kbd->kb_delay1 = typematic_delay(val);
1217 kbd->kb_delay2 = typematic_rate(val);
1357 printf("atkbd: the current kbd controller command byte %04x\n",
1436 /* XT kbd doesn't need scan code translation */
1441 * The XT kbd isn't usable unless the proper scan