int dzms_enable(void *v) { struct dzms_softc *dzms = v; struct lkms_softc *sc = v; if (sc->sc_enabled) return EBUSY; sc->sc_selftest = 4; /* wait for 4 byte reply upto 1/2 sec */ dzputc(dzms->dzms_ls, MOUSE_SELF_TEST); (void)tsleep(&sc->sc_enabled, TTIPRI, "dzmsopen", hz / 2); if (sc->sc_selftest != 0) { sc->sc_selftest = 0; return ENXIO; } DELAY(150); dzputc(dzms->dzms_ls, MOUSE_INCREMENTAL); sc->sc_enabled = 1; sc->inputstate = 0; return 0; }
int dzkbd_sendchar(void *v, int c) { dzputc((struct dz_linestate *)v, c); return (0); }