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 */
82 static int pckbd_attach_unit(device_t dev, keyboard_t **kbd,
119 keyboard_t *kbd;
131 error = pckbd_attach_unit(dev, &kbd,
140 bus_setup_intr(dev, res, INTR_TYPE_TTY, NULL, pckbd_isa_intr, kbd, &ih);
148 keyboard_t *kbd;
150 kbd = kbd_get_keyboard(kbd_find_keyboard(DRIVER_NAME,
152 if (kbd)
153 kbdd_clear_state(kbd);
161 keyboard_t *kbd = arg;
163 kbdd_intr(kbd, NULL);
186 pckbd_attach_unit(device_t dev, keyboard_t **kbd, int port, int irq, int flags)
201 *kbd = NULL;
205 error = (*sw->init)(unit, kbd, args, flags);
208 (*sw->enable)(*kbd);
212 error = kbd_attach(*kbd);
221 pckbd_timeout(*kbd);
224 (*sw->diag)(*kbd, bootverbose);
232 keyboard_t *kbd;
250 kbd = (keyboard_t *)arg;
251 if (kbdd_lock(kbd, TRUE)) {
257 kbdd_lock(kbd, FALSE);
258 if (kbdd_check_char(kbd))
259 kbdd_intr(kbd, NULL);
366 keyboard_t *kbd;
377 kbd = kbd_get_keyboard(i);
378 kbd_unregister(kbd);
379 kbd->kb_flags &= ~KB_REGISTERED;
388 kbd = NULL;
391 if (pckbd_init(PC98KBD_DEFAULT, &kbd, arg, flags))
426 keyboard_t *kbd;
437 *kbdp = kbd = &default_kbd;
439 if (!KBD_IS_PROBED(kbd)) {
449 kbd_init_struct(kbd, DRIVER_NAME, KB_OTHER, unit, flags,
455 kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
456 kbd->kb_data = (void *)state;
462 KBD_FOUND_DEVICE(kbd);
464 pckbd_clear_state(kbd);
466 KBD_PROBE_DONE(kbd);
468 if (!KBD_IS_INITIALIZED(kbd) && !(flags & KB_CONF_PROBE_ONLY)) {
469 if (KBD_HAS_DEVICE(kbd)
470 && init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config)
471 && (kbd->kb_config & KB_CONF_FAIL_IF_NO_KBD))
473 pckbd_ioctl(kbd, KDSETLED, (caddr_t)&state->ks_state);
474 KBD_INIT_DONE(kbd);
476 if (!KBD_IS_CONFIGURED(kbd)) {
477 if (kbd_register(kbd) < 0)
479 KBD_CONFIG_DONE(kbd);
487 pckbd_term(keyboard_t *kbd)
489 kbd_unregister(kbd);
495 pckbd_intr(keyboard_t *kbd, void *arg)
499 if (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd)) {
501 (*kbd->kb_callback.kc_func)(kbd, KBDIO_KEYINPUT,
502 kbd->kb_callback.kc_arg);
506 c = pckbd_read_char(kbd, FALSE);
514 pckbd_test_if(keyboard_t *kbd)
524 pckbd_enable(keyboard_t *kbd)
529 KBD_ACTIVATE(kbd);
536 pckbd_disable(keyboard_t *kbd)
541 KBD_DEACTIVATE(kbd);
548 pckbd_read(keyboard_t *kbd, int wait)
553 c = read_kbd_data(((pckbd_state_t *)kbd->kb_data)->kbdc);
555 c = read_kbd_data_no_wait(((pckbd_state_t *)kbd->kb_data)->kbdc);
557 ++kbd->kb_count;
558 return (KBD_IS_ACTIVE(kbd) ? c : -1);
563 pckbd_check(keyboard_t *kbd)
565 if (!KBD_IS_ACTIVE(kbd))
567 return kbdc_data_ready(((pckbd_state_t *)kbd->kb_data)->kbdc);
572 pckbd_read_char(keyboard_t *kbd, int wait)
579 state = (pckbd_state_t *)kbd->kb_data;
600 ++kbd->kb_count;
681 action = genkbd_keyaction(kbd, keycode, scancode & 0x80,
691 pckbd_check_char(keyboard_t *kbd)
695 if (!KBD_IS_ACTIVE(kbd))
697 state = (pckbd_state_t *)kbd->kb_data;
705 pckbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg)
707 pckbd_state_t *state = kbd->kb_data;
734 state->ks_state |= KBD_LED_VAL(kbd);
740 pckbd_clear_state(kbd);
751 *(int *)arg = KBD_LED_VAL(kbd);
768 if (kbd->kb_keymap->n_keys > ALTGR_OFFSET) {
774 KBD_LED_VAL(kbd) = *(int *)arg;
796 return pckbd_ioctl(kbd, KDSETLED, arg);
811 return genkbd_commonioctl(kbd, cmd, arg);
820 pckbd_lock(keyboard_t *kbd, int lock)
822 return kbdc_lock(((pckbd_state_t *)kbd->kb_data)->kbdc, lock);
827 pckbd_clear_state(keyboard_t *kbd)
831 state = (pckbd_state_t *)kbd->kb_data;
840 pckbd_get_state(keyboard_t *kbd, void *buf, size_t len)
846 bcopy(kbd->kb_data, buf, sizeof(pckbd_state_t));
852 pckbd_set_state(keyboard_t *kbd, void *buf, size_t len)
856 if (((pckbd_state_t *)kbd->kb_data)->kbdc
859 bcopy(buf, kbd->kb_data, sizeof(pckbd_state_t));
865 pckbd_poll(keyboard_t *kbd, int on)
894 #define KBD_RESETDELAY 200 /* wait 200msec after kbd/mouse reset */