diff options
Diffstat (limited to 'sys/dev/wscons')
-rw-r--r-- | sys/dev/wscons/wskbd.c | 10 | ||||
-rw-r--r-- | sys/dev/wscons/wsmouse.c | 11 | ||||
-rw-r--r-- | sys/dev/wscons/wsmux.c | 16 |
3 files changed, 20 insertions, 17 deletions
diff --git a/sys/dev/wscons/wskbd.c b/sys/dev/wscons/wskbd.c index 120b0476afd..c834dfbee9a 100644 --- a/sys/dev/wscons/wskbd.c +++ b/sys/dev/wscons/wskbd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wskbd.c,v 1.99 2019/08/08 02:19:18 cheloha Exp $ */ +/* $OpenBSD: wskbd.c,v 1.100 2020/01/08 16:27:40 visa Exp $ */ /* $NetBSD: wskbd.c,v 1.80 2005/05/04 01:52:16 augustss Exp $ */ /* @@ -961,20 +961,20 @@ wskbd_do_ioctl_sc(struct wskbd_softc *sc, u_long cmd, caddr_t data, int flag, sc->sc_base.me_evp->async = *(int *)data != 0; return (0); + case FIOGETOWN: case TIOCGPGRP: evar = sc->sc_base.me_evp; if (evar == NULL) return (EINVAL); - *(int *)data = -sigio_getown(&evar->sigio); + sigio_getown(&evar->sigio, cmd, data); return (0); + case FIOSETOWN: case TIOCSPGRP: - if (*(int *)data < 0) - return (EINVAL); evar = sc->sc_base.me_evp; if (evar == NULL) return (EINVAL); - return (sigio_setown(&evar->sigio, -*(int *)data)); + return (sigio_setown(&evar->sigio, cmd, data)); } /* diff --git a/sys/dev/wscons/wsmouse.c b/sys/dev/wscons/wsmouse.c index 97a086d7115..0f0d4da1c60 100644 --- a/sys/dev/wscons/wsmouse.c +++ b/sys/dev/wscons/wsmouse.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wsmouse.c,v 1.57 2019/08/19 21:19:38 bru Exp $ */ +/* $OpenBSD: wsmouse.c,v 1.58 2020/01/08 16:27:41 visa Exp $ */ /* $NetBSD: wsmouse.c,v 1.35 2005/02/27 00:27:52 perry Exp $ */ /* @@ -483,6 +483,7 @@ wsmouse_do_ioctl(struct wsmouse_softc *sc, u_long cmd, caddr_t data, int flag, switch (cmd) { case FIOASYNC: + case FIOSETOWN: case TIOCSPGRP: if ((flag & FWRITE) == 0) return (EACCES); @@ -498,20 +499,20 @@ wsmouse_do_ioctl(struct wsmouse_softc *sc, u_long cmd, caddr_t data, int flag, sc->sc_base.me_evp->async = *(int *)data != 0; return (0); + case FIOGETOWN: case TIOCGPGRP: evar = sc->sc_base.me_evp; if (evar == NULL) return (EINVAL); - *(int *)data = -sigio_getown(&evar->sigio); + sigio_getown(&evar->sigio, cmd, data); return (0); + case FIOSETOWN: case TIOCSPGRP: - if (*(int *)data < 0) - return (EINVAL); evar = sc->sc_base.me_evp; if (evar == NULL) return (EINVAL); - return (sigio_setown(&evar->sigio, -*(int *)data)); + return (sigio_setown(&evar->sigio, cmd, data)); case WSMOUSEIO_GETPARAMS: case WSMOUSEIO_SETPARAMS: diff --git a/sys/dev/wscons/wsmux.c b/sys/dev/wscons/wsmux.c index 20239aafca7..ede38d63714 100644 --- a/sys/dev/wscons/wsmux.c +++ b/sys/dev/wscons/wsmux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wsmux.c,v 1.48 2019/05/22 19:13:34 anton Exp $ */ +/* $OpenBSD: wsmux.c,v 1.49 2020/01/08 16:27:41 visa Exp $ */ /* $NetBSD: wsmux.c,v 1.37 2005/04/30 03:47:12 augustss Exp $ */ /* @@ -501,21 +501,23 @@ wsmux_do_ioctl(struct device *dv, u_long cmd, caddr_t data, int flag, return (EINVAL); evar->async = *(int *)data != 0; return (0); + case FIOGETOWN: case TIOCGPGRP: - DPRINTF(("%s: TIOCGPGRP\n", sc->sc_base.me_dv.dv_xname)); + DPRINTF(("%s: getown (%lu)\n", sc->sc_base.me_dv.dv_xname, + cmd)); evar = sc->sc_base.me_evp; if (evar == NULL) return (EINVAL); - *(int *)data = -sigio_getown(&evar->sigio); + sigio_getown(&evar->sigio, cmd, data); return (0); + case FIOSETOWN: case TIOCSPGRP: - DPRINTF(("%s: TIOCSPGRP\n", sc->sc_base.me_dv.dv_xname)); - if (*(int *)data < 0) - return (EINVAL); + DPRINTF(("%s: setown (%lu)\n", sc->sc_base.me_dv.dv_xname, + cmd)); evar = sc->sc_base.me_evp; if (evar == NULL) return (EINVAL); - return (sigio_setown(&evar->sigio, -*(int *)data)); + return (sigio_setown(&evar->sigio, cmd, data)); default: DPRINTF(("%s: unknown\n", sc->sc_base.me_dv.dv_xname)); break; |