summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshadchin <shadchin@openbsd.org>2010-12-16 20:18:31 +0000
committershadchin <shadchin@openbsd.org>2010-12-16 20:18:31 +0000
commit4e9c6c668a5325a4d71f86ae9a807301914cd3ea (patch)
tree866c32fcc050613af789700c4d4e5cb0a9a5c127
parenttweak previous; (diff)
downloadwireguard-openbsd-4e9c6c668a5325a4d71f86ae9a807301914cd3ea.tar.xz
wireguard-openbsd-4e9c6c668a5325a4d71f86ae9a807301914cd3ea.zip
small cleanup ioctl WSKBDIO_GETLEDS
ok miod@
-rw-r--r--sys/dev/pckbc/pckbd.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/sys/dev/pckbc/pckbd.c b/sys/dev/pckbc/pckbd.c
index f21c51750c8..8b333fa5ec6 100644
--- a/sys/dev/pckbc/pckbd.c
+++ b/sys/dev/pckbc/pckbd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pckbd.c,v 1.29 2010/12/03 18:29:56 shadchin Exp $ */
+/* $OpenBSD: pckbd.c,v 1.30 2010/12/16 20:18:31 shadchin Exp $ */
/* $NetBSD: pckbd.c,v 1.24 2000/06/05 22:20:57 sommerfeld Exp $ */
/*-
@@ -179,7 +179,6 @@ void pckbd_input(void *, int);
static int pckbd_decode(struct pckbd_internal *, int,
u_int *, int *);
static int pckbd_led_encode(int);
-static int pckbd_led_decode(int);
struct pckbd_internal pckbd_consdata;
@@ -890,22 +889,6 @@ pckbd_led_encode(led)
return(res);
}
-static int
-pckbd_led_decode(led)
- int led;
-{
- int res;
-
- res = 0;
- if (led & 0x01)
- res |= WSKBD_LED_SCROLL;
- if (led & 0x02)
- res |= WSKBD_LED_NUM;
- if (led & 0x04)
- res |= WSKBD_LED_CAPS;
- return(res);
-}
-
void
pckbd_set_leds(v, leds)
void *v;
@@ -916,7 +899,7 @@ pckbd_set_leds(v, leds)
cmd[0] = KBC_MODEIND;
cmd[1] = pckbd_led_encode(leds);
- sc->sc_ledstate = cmd[1];
+ sc->sc_ledstate = leds;
(void) pckbc_enqueue_cmd(sc->id->t_kbctag, sc->id->t_kbcslot,
cmd, 2, 0, 0, 0);
@@ -980,13 +963,14 @@ pckbd_ioctl(v, cmd, data, flag, p)
int res;
cmd[0] = KBC_MODEIND;
cmd[1] = pckbd_led_encode(*(int *)data);
- sc->sc_ledstate = cmd[1];
+ sc->sc_ledstate = *(int *)data & (WSKBD_LED_SCROLL |
+ WSKBD_LED_NUM | WSKBD_LED_CAPS);
res = pckbc_enqueue_cmd(sc->id->t_kbctag, sc->id->t_kbcslot,
cmd, 2, 0, 1, 0);
return (res);
}
case WSKBDIO_GETLEDS:
- *(int *)data = pckbd_led_decode(sc->sc_ledstate);
+ *(int *)data = sc->sc_ledstate;
return (0);
case WSKBDIO_COMPLEXBELL:
#define d ((struct wskbd_bell_data *)data)