void qsckbd_cngetc(void *v, u_int *type, int *data) { struct qsckbd_internal *dzi = v; int c; do { c = qscgetc(dzi->dzi_line); } while (lk201_decode(&dzi->dzi_ks, 1, 0, c, type, data) == LKD_NODATA); }
void dzkbd_cngetc(void *v, u_int *type, int *data) { struct dzkbd_internal *dzi = v; #if 0 int line = dzi->dzi_ls != NULL ? dzi->dzi_ls->dz_line : 0; #else int line = 0; /* keyboard */ #endif int c, s; do { s = spltty(); c = dzcngetc_internal(line); splx(s); } while (lk201_decode(&dzi->dzi_ks, 1, 0, c, type, data) == LKD_NODATA); }
int dzkbd_input(void *v, int data) { struct dzkbd_softc *sc = (struct dzkbd_softc *)v; u_int type; int val; int decode; /* * We want to run through lk201_decode always, so that a late plugged * keyboard will get configured correctly. */ do { decode = lk201_decode(&sc->sc_itl->dzi_ks, sc->sc_enabled, 1, data, &type, &val); if (decode != LKD_NODATA) wskbd_input(sc->sc_wskbddev, type, val); } while (decode == LKD_MORE); return(1); }