zskbd
zskbd.status = (volatile uint8_t *)status;
zskbd.data = (volatile uint8_t *)data;
zskbd.normal = map_normal;
zskbd.shift = map_shift;
zskbd.ctrl = map_ctrl;
zskbd.capslock = map_capslock;
zskbd.print = on;
if ((*zskbd.status & 0x01) != 0x01)
while ((*zskbd.status & 0x01) != 0x01)
v = *zskbd.data;
if (zskbd.print)
zskbd.keymap |= 0x01;
zskbd.keymap &= ~0x01;
zskbd.keymap |= 0x02;
zskbd.keymap &= ~0x02;
if (zskbd.keymap & 0x04) {
zskbd.keymap &= ~0x04;
*zskbd.data = 0x90; /* LED */
zskbd.keymap |= 0x04;
*zskbd.data = 0x92; /* LED */
if (zskbd.keymap & 0x01) /* Shift */
return *(zskbd.shift + c);
if (zskbd.keymap & 0x02) /* Ctrl */
return *(zskbd.ctrl + c);
if (zskbd.keymap & 0x04) /* CapsLock */
return *(zskbd.capslock + c);
return *(zskbd.normal + c);
while ((*zskbd.status & 0x20) != 0x20)
} while ((*zskbd.status & 0x4) != 0x4);
struct zskbd zskbd;
extern struct zskbd zskbd;
CFATTACH_DECL_NEW(zskbd, sizeof(struct zskbd_softc),
CFATTACH_DECL_NEW(zskbd, sizeof(struct zskbd_softc),
struct zskbd_softc *zskbd = device_private(self);
zskbd->zskbd_dev = self;
cs->cs_private = zskbd;
zskbd->sc_itl = zsi;
zskbd->kbd_type = WSKBD_TYPE_LK201;
zskbd->sc_enabled = 1;
a.accesscookie = zskbd;
zskbd->sc_wskbddev = config_found(self, &a, wskbddevprint, CFARGS_NONE);
struct zskbd_softc *zskbd;
zskbd = cs->cs_private;
put = zskbd->zskbd_rbput;
zskbd->zskbd_rbuf[put] = (c << 8) | rr1;
if (put_next == zskbd->zskbd_rbget) {
zskbd->zskbd_intr_flags |= INTR_RX_OVERRUN;
zskbd->zskbd_rbput = put;
struct zskbd_softc *zskbd;
zskbd = cs->cs_private;
zskbd->zskbd_intr_flags |= INTR_TX_EMPTY;
struct zskbd_softc *zskbd;
zskbd = cs->cs_private;
zskbd->zskbd_intr_flags |= INTR_ST_CHECK;
struct zskbd_softc *zskbd;
zskbd = cs->cs_private;
intr_flags = zskbd->zskbd_intr_flags;
zskbd->zskbd_intr_flags = 0;
get = zskbd->zskbd_rbget;
while (get != zskbd->zskbd_rbput) {
ring_data = zskbd->zskbd_rbuf[get];
device_xname(zskbd->zskbd_dev), ring_data);
zskbd_input(zskbd, c);
device_xname(zskbd->zskbd_dev));
zskbd->zskbd_rbget = get;
device_xname(zskbd->zskbd_dev));
device_xname(zskbd->zskbd_dev));