Lines Matching defs:kbd

61 #include <dev/kbd/kbdreg.h>
88 atkbd_attach_unit(device_t dev, keyboard_t **kbd, int irq, int flags)
103 *kbd = NULL;
107 error = (*sw->init)(unit, kbd, args, flags);
110 (*sw->enable)(*kbd);
114 error = kbd_attach(*kbd);
123 atkbd_timeout(*kbd);
126 (*sw->diag)(*kbd, bootverbose);
128 EVENTHANDLER_REGISTER(shutdown_final, atkbd_shutdown_final, *kbd,
137 keyboard_t *kbd;
166 kbd = (keyboard_t *)arg;
167 if (kbdd_lock(kbd, TRUE)) {
173 kbdd_lock(kbd, FALSE);
174 if (kbdd_check_char(kbd))
175 kbdd_intr(kbd, NULL);
242 static int get_typematic(keyboard_t *kbd);
260 #include <dev/kbd/kbdtables.h>
281 keyboard_t *kbd;
293 kbd = kbd_get_keyboard(i);
294 kbd_unregister(kbd);
295 kbd->kb_flags &= ~KB_REGISTERED;
307 kbd = NULL;
310 if (atkbd_init(ATKBD_DEFAULT, &kbd, arg, flags))
346 keyboard_t *kbd;
358 *kbdp = kbd = &default_kbd;
359 if (KBD_IS_INITIALIZED(kbd) && KBD_IS_CONFIGURED(kbd))
369 *kbdp = kbd = malloc(sizeof(*kbd), M_DEVBUF, M_NOWAIT | M_ZERO);
377 if ((kbd == NULL) || (state == NULL) || (keymap == NULL)
385 kbd = *kbdp;
386 state = (atkbd_state_t *)kbd->kb_data;
388 keymap = kbd->kb_keymap;
389 accmap = kbd->kb_accentmap;
390 fkeymap = kbd->kb_fkeytab;
391 fkeymap_size = kbd->kb_fkeytab_size;
395 if (!KBD_IS_PROBED(kbd)) {
401 kbd_init_struct(kbd, ATKBD_DRIVER_NAME, KB_OTHER, unit, flags,
407 kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
408 kbd->kb_data = (void *)state;
416 KBD_FOUND_DEVICE(kbd);
418 atkbd_clear_state(kbd);
424 KBD_PROBE_DONE(kbd);
426 if (!KBD_IS_INITIALIZED(kbd) && !(flags & KB_CONF_PROBE_ONLY)) {
427 kbd->kb_config = flags & ~KB_CONF_PROBE_ONLY;
428 if (KBD_HAS_DEVICE(kbd)
429 && init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config)
430 && (kbd->kb_config & KB_CONF_FAIL_IF_NO_KBD)) {
431 kbd_unregister(kbd);
435 atkbd_ioctl(kbd, KDSETLED, (caddr_t)&state->ks_state);
436 get_typematic(kbd);
437 delay[0] = kbd->kb_delay1;
438 delay[1] = kbd->kb_delay2;
439 atkbd_ioctl(kbd, KDSETREPEAT, (caddr_t)delay);
440 KBD_INIT_DONE(kbd);
442 if (!KBD_IS_CONFIGURED(kbd)) {
443 if (kbd_register(kbd) < 0) {
447 KBD_CONFIG_DONE(kbd);
461 if (kbd != NULL) {
462 free(kbd, M_DEVBUF);
471 atkbd_term(keyboard_t *kbd)
473 kbd_unregister(kbd);
479 atkbd_intr(keyboard_t *kbd, void *arg)
481 atkbd_state_t *state = (atkbd_state_t *)kbd->kb_data;
485 if (!KBD_HAS_DEVICE(kbd)) {
490 init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config);
491 KBD_FOUND_DEVICE(kbd);
492 atkbd_ioctl(kbd, KDSETLED, (caddr_t)&state->ks_state);
493 get_typematic(kbd);
494 delay[0] = kbd->kb_delay1;
495 delay[1] = kbd->kb_delay2;
496 atkbd_ioctl(kbd, KDSETREPEAT, (caddr_t)delay);
502 if (KBD_IS_ACTIVE(kbd) && KBD_IS_BUSY(kbd)) {
504 (*kbd->kb_callback.kc_func)(kbd, KBDIO_KEYINPUT,
505 kbd->kb_callback.kc_arg);
509 c = atkbd_read_char(kbd, FALSE);
517 atkbd_test_if(keyboard_t *kbd)
523 empty_both_buffers(((atkbd_state_t *)kbd->kb_data)->kbdc, 10);
525 if (!test_controller(((atkbd_state_t *)kbd->kb_data)->kbdc))
527 else if (test_kbd_port(((atkbd_state_t *)kbd->kb_data)->kbdc) != 0)
539 atkbd_enable(keyboard_t *kbd)
544 KBD_ACTIVATE(kbd);
551 atkbd_disable(keyboard_t *kbd)
556 KBD_DEACTIVATE(kbd);
563 atkbd_read(keyboard_t *kbd, int wait)
568 c = read_kbd_data(((atkbd_state_t *)kbd->kb_data)->kbdc);
570 c = read_kbd_data_no_wait(((atkbd_state_t *)kbd->kb_data)->kbdc);
572 ++kbd->kb_count;
573 return (KBD_IS_ACTIVE(kbd) ? c : -1);
578 atkbd_check(keyboard_t *kbd)
580 if (!KBD_IS_ACTIVE(kbd))
582 return kbdc_data_ready(((atkbd_state_t *)kbd->kb_data)->kbdc);
587 atkbd_read_char(keyboard_t *kbd, int wait)
594 state = (atkbd_state_t *)kbd->kb_data;
615 ++kbd->kb_count;
743 if (kbd->kb_type == KB_84) {
758 } else if (kbd->kb_type == KB_101) {
824 action = genkbd_keyaction(kbd, keycode, scancode & 0x80,
834 atkbd_check_char(keyboard_t *kbd)
838 if (!KBD_IS_ACTIVE(kbd))
840 state = (atkbd_state_t *)kbd->kb_data;
848 atkbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg)
854 atkbd_state_t *state = kbd->kb_data;
882 state->ks_state |= KBD_LED_VAL(kbd);
888 atkbd_clear_state(kbd);
899 *(int *)arg = KBD_LED_VAL(kbd);
917 kbd->kb_keymap->n_keys > ALTGR_OFFSET) {
923 if (KBD_HAS_DEVICE(kbd)) {
931 KBD_LED_VAL(kbd) = *(int *)arg;
953 return atkbd_ioctl(kbd, KDSETLED, arg);
957 if (!KBD_HAS_DEVICE(kbd))
962 kbd->kb_delay1 = typematic_delay(i);
963 kbd->kb_delay2 = typematic_rate(i);
976 if (!KBD_HAS_DEVICE(kbd))
980 kbd->kb_delay1 = typematic_delay(*(int *)arg);
981 kbd->kb_delay2 = typematic_rate(*(int *)arg);
993 return genkbd_commonioctl(kbd, cmd, arg);
1002 atkbd_lock(keyboard_t *kbd, int lock)
1004 return kbdc_lock(((atkbd_state_t *)kbd->kb_data)->kbdc, lock);
1009 atkbd_clear_state(keyboard_t *kbd)
1013 state = (atkbd_state_t *)kbd->kb_data;
1026 atkbd_get_state(keyboard_t *kbd, void *buf, size_t len)
1032 bcopy(kbd->kb_data, buf, sizeof(atkbd_state_t));
1038 atkbd_set_state(keyboard_t *kbd, void *buf, size_t len)
1042 if (((atkbd_state_t *)kbd->kb_data)->kbdc
1045 bcopy(buf, kbd->kb_data, sizeof(atkbd_state_t));
1050 atkbd_poll(keyboard_t *kbd, int on)
1055 state = (atkbd_state_t *)kbd->kb_data;
1069 keyboard_t *kbd = v;
1070 KBDC kbdc = ((atkbd_state_t *)kbd->kb_data)->kbdc;
1092 get_typematic(keyboard_t *kbd)
1137 kbd->kb_delay1 = typematic_delay(regs.R_BH << 5);
1138 kbd->kb_delay2 = typematic_rate(regs.R_BL);
1278 printf("atkbd: the current kbd controller command byte %04x\n",
1373 /* XT kbd doesn't need scan code translation */
1378 * The XT kbd isn't usable unless the proper scan