From 541de8d9a51801d6953d56f6f8b20b72f0427b23 Mon Sep 17 00:00:00 2001 From: KATO Takenori Date: Tue, 4 Mar 1997 06:25:54 +0000 Subject: [PATCH] Synchronize with sys/i386/isa/syscons.c revision 1.205. --- sys/pc98/pc98/syscons.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/sys/pc98/pc98/syscons.c b/sys/pc98/pc98/syscons.c index 4e762882430..4c290e2b2bf 100644 --- a/sys/pc98/pc98/syscons.c +++ b/sys/pc98/pc98/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.28 1997/02/22 09:43:47 peter Exp $ + * $Id: syscons.c,v 1.29 1997/03/01 10:53:07 kato Exp $ */ #include "sc.h" @@ -207,6 +207,7 @@ static const int nsccons = MAXCONS+2; ((scp->his_atr) + ((((pointer) - (scp->his_atr)) + (scp->history_size)\ + (offset)) % (scp->history_size))) #endif +#define ISSIGVALID(sig) ((sig) > 0 && (sig) < NSIG) /* prototypes */ static int scattach(struct isa_device *dev); @@ -948,7 +949,7 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) switch (mouse->operation) { case MOUSE_MODE: - if (mouse->u.mode.signal > 0 && mouse->u.mode.signal < NSIG) { + if (ISSIGVALID(mouse->u.mode.signal)) { scp->mouse_signal = mouse->u.mode.signal; scp->mouse_proc = p; scp->mouse_pid = p->p_pid; @@ -1228,12 +1229,21 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) #endif /* PC98 */ case VT_SETMODE: /* set screen switcher mode */ - bcopy(data, &scp->smode, sizeof(struct vt_mode)); - if (scp->smode.mode == VT_PROCESS) { - scp->proc = p; - scp->pid = scp->proc->p_pid; - } - return 0; + { + struct vt_mode *mode; + + mode = (struct vt_mode *)data; + if (ISSIGVALID(mode->relsig) && ISSIGVALID(mode->acqsig) && + ISSIGVALID(mode->frsig)) { + bcopy(data, &scp->smode, sizeof(struct vt_mode)); + if (scp->smode.mode == VT_PROCESS) { + scp->proc = p; + scp->pid = scp->proc->p_pid; + } + return 0; + } else + return EINVAL; + } case VT_GETMODE: /* get screen switcher mode */ bcopy(&scp->smode, data, sizeof(struct vt_mode)); -- 2.45.2