summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazutaka YOKOTA <yokota@FreeBSD.org>2001-07-22 13:58:23 +0000
committerKazutaka YOKOTA <yokota@FreeBSD.org>2001-07-22 13:58:23 +0000
commita4fc697e582df87509be8d6cb04c6954d5d8656c (patch)
tree9cf91f3e573390f68fe1a350a930509ffffc187b
parente64c88b2dcf85b8b13dab00e2d6aebc0cdc2b259 (diff)
Notes
-rw-r--r--sys/dev/syscons/syscons.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index f0ba0d36f10a..c4610976b0b2 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -942,22 +942,22 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
return EINVAL;
case VT_ACTIVATE: /* switch to screen *data */
+ i = (*(int *)data == 0) ? scp->index : (*(int *)data - 1);
s = spltty();
sc_clean_up(sc->cur_scp);
splx(s);
- return sc_switch_scr(sc, *(int *)data - 1);
+ return sc_switch_scr(sc, i);
case VT_WAITACTIVE: /* wait for switch to occur */
- if ((*(int *)data >= sc->first_vty + sc->vtys)
- || (*(int *)data < sc->first_vty))
+ i = (*(int *)data == 0) ? scp->index : (*(int *)data - 1);
+ if ((i < sc->first_vty) || (i >= sc->first_vty + sc->vtys))
return EINVAL;
s = spltty();
error = sc_clean_up(sc->cur_scp);
splx(s);
if (error)
return error;
- if (*(int *)data != 0)
- scp = SC_STAT(SC_DEV(sc, *(int *)data - 1));
+ scp = SC_STAT(SC_DEV(sc, i));
if (scp == scp->sc->cur_scp)
return 0;
while ((error=tsleep((caddr_t)&scp->smode, PZERO|PCATCH,