/* ARGSUSED */ void pckbd_cngetc(void *v, u_int *type, int *data) { struct pckbd_internal *t = v; int val; for (;;) { val = pckbport_poll_data(t->t_kbctag, t->t_kbcslot); if ((val != -1) && pckbd_decode(t, val, type, data)) return; } }
/* * Got a console receive interrupt - * the console processor wants to give us a character. */ void pckbd_input(void *vsc, int data) { struct pckbd_softc *sc = vsc; int key; u_int type; #ifdef WSDISPLAY_COMPAT_RAWKBD if (sc->rawkbd) { u_char d = data; wskbd_rawinput(sc->sc_wskbddev, &d, 1); return; } #endif if (pckbd_decode(sc->id, data, &type, &key)) wskbd_input(sc->sc_wskbddev, type, key); }
/* ARGSUSED */ void pckbd_cngetc(void *v, u_int *type, int *data) { struct pckbd_internal *t = v; int val; for (;;) { val = pckbport_poll_data(t->t_kbctag, t->t_kbcslot); if (val == -1) continue; val = pckbd_scancode_translate(t, val); if (val == 0) continue; if (pckbd_decode(t, val, type, data)) return; } }