Lines Matching refs:kbd

45 #include <dev/kbd/kbdreg.h>
53 #define KB_CONF_FAIL_IF_NO_KBD (1 << 0) /* don't install if no kbd is found */
95 static int pckbd_attach_unit(device_t dev, keyboard_t **kbd,
132 keyboard_t *kbd;
144 error = pckbd_attach_unit(dev, &kbd,
153 bus_setup_intr(dev, res, INTR_TYPE_TTY, NULL, pckbd_isa_intr, kbd, &ih);
161 keyboard_t *kbd;
163 kbd = kbd_get_keyboard(kbd_find_keyboard(DRIVER_NAME,
165 if (kbd)
166 kbdd_clear_state(kbd);
174 keyboard_t *kbd = arg;
176 kbdd_intr(kbd, NULL);
199 pckbd_attach_unit(device_t dev, keyboard_t **kbd, int port, int irq, int flags)
215 *kbd = NULL;
219 error = (*sw->init)(unit, kbd, args, flags);
222 (*sw->enable)(*kbd);
226 error = kbd_attach(*kbd);
235 state = (pckbd_state_t *)(*kbd)->kb_data;
237 pckbd_timeout(*kbd);
240 (*sw->diag)(*kbd, bootverbose);
249 keyboard_t *kbd;
267 kbd = (keyboard_t *)arg;
268 if (kbdd_lock(kbd, TRUE)) {
274 kbdd_lock(kbd, FALSE);
275 if (kbdd_check_char(kbd))
276 kbdd_intr(kbd, NULL);
279 state = (pckbd_state_t *)kbd->kb_data;
372 keyboard_t *kbd;
383 kbd = kbd_get_keyboard(i);
384 kbd_unregister(kbd);
385 kbd->kb_flags &= ~KB_REGISTERED;
394 kbd = NULL;
397 if (pckbd_init(PC98KBD_DEFAULT, &kbd, arg, flags))
432 keyboard_t *kbd;
443 *kbdp = kbd = &default_kbd;
445 if (!KBD_IS_PROBED(kbd)) {
454 kbd_init_struct(kbd, DRIVER_NAME, KB_OTHER, unit, flags,
460 kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
461 kbd->kb_data = (void *)state;
467 KBD_FOUND_DEVICE(kbd);
469 pckbd_clear_state(kbd);
471 KBD_PROBE_DONE(kbd);
473 if (!KBD_IS_INITIALIZED(kbd) && !(flags & KB_CONF_PROBE_ONLY)) {
474 if (KBD_HAS_DEVICE(kbd)
475 && init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config)
476 && (kbd->kb_config & KB_CONF_FAIL_IF_NO_KBD))
478 pckbd_ioctl(kbd, KDSETLED, (caddr_t)&state->ks_state);
479 KBD_INIT_DONE(kbd);
481 if (!KBD_IS_CONFIGURED(kbd)) {
482 if (kbd_register(kbd) < 0)
484 KBD_CONFIG_DONE(kbd);
492 pckbd_term(keyboard_t *kbd)
494 pckbd_state_t *state = (pckbd_state_t *)kbd->kb_data;
496 kbd_unregister(kbd);
503 pckbd_intr(keyboard_t *kbd, void *arg)
507 if (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd)) {
509 (*kbd->kb_callback.kc_func)(kbd, KBDIO_KEYINPUT,
510 kbd->kb_callback.kc_arg);
514 c = pckbd_read_char(kbd, FALSE);
522 pckbd_test_if(keyboard_t *kbd)
532 pckbd_enable(keyboard_t *kbd)
537 KBD_ACTIVATE(kbd);
544 pckbd_disable(keyboard_t *kbd)
549 KBD_DEACTIVATE(kbd);
556 pckbd_read(keyboard_t *kbd, int wait)
561 c = read_kbd_data(((pckbd_state_t *)kbd->kb_data)->kbdc);
563 c = read_kbd_data_no_wait(((pckbd_state_t *)kbd->kb_data)->kbdc);
565 ++kbd->kb_count;
566 return (KBD_IS_ACTIVE(kbd) ? c : -1);
571 pckbd_check(keyboard_t *kbd)
573 if (!KBD_IS_ACTIVE(kbd))
575 return kbdc_data_ready(((pckbd_state_t *)kbd->kb_data)->kbdc);
580 pckbd_read_char(keyboard_t *kbd, int wait)
587 state = (pckbd_state_t *)kbd->kb_data;
608 ++kbd->kb_count;
689 action = genkbd_keyaction(kbd, keycode, scancode & 0x80,
699 pckbd_check_char(keyboard_t *kbd)
703 if (!KBD_IS_ACTIVE(kbd))
705 state = (pckbd_state_t *)kbd->kb_data;
713 pckbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg)
715 pckbd_state_t *state = kbd->kb_data;
742 state->ks_state |= KBD_LED_VAL(kbd);
748 pckbd_clear_state(kbd);
759 *(int *)arg = KBD_LED_VAL(kbd);
776 if (kbd->kb_keymap->n_keys > ALTGR_OFFSET) {
782 KBD_LED_VAL(kbd) = *(int *)arg;
804 return pckbd_ioctl(kbd, KDSETLED, arg);
819 return genkbd_commonioctl(kbd, cmd, arg);
828 pckbd_lock(keyboard_t *kbd, int lock)
830 return kbdc_lock(((pckbd_state_t *)kbd->kb_data)->kbdc, lock);
835 pckbd_clear_state(keyboard_t *kbd)
839 state = (pckbd_state_t *)kbd->kb_data;
848 pckbd_get_state(keyboard_t *kbd, void *buf, size_t len)
854 bcopy(kbd->kb_data, buf, sizeof(pckbd_state_t));
860 pckbd_set_state(keyboard_t *kbd, void *buf, size_t len)
864 if (((pckbd_state_t *)kbd->kb_data)->kbdc
867 bcopy(buf, kbd->kb_data, sizeof(pckbd_state_t));
873 pckbd_poll(keyboard_t *kbd, int on)
902 #define KBD_RESETDELAY 200 /* wait 200msec after kbd/mouse reset */