Module Name:    src
Committed By:   thorpej
Date:           Thu Mar 14 23:49:38 UTC 2019

Modified Files:
        src/sys/arch/vax/uba: qv.c
        src/sys/arch/vax/vsa: smg.c

Log Message:
Use copyin(), not fusword().


To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/vax/uba/qv.c
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/vax/vsa/smg.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/vax/uba/qv.c
diff -u src/sys/arch/vax/uba/qv.c:1.33 src/sys/arch/vax/uba/qv.c:1.34
--- src/sys/arch/vax/uba/qv.c:1.33	Mon May 22 17:15:45 2017
+++ src/sys/arch/vax/uba/qv.c	Thu Mar 14 23:49:38 2019
@@ -1,4 +1,4 @@
-/*$Header: /cvsroot/src/sys/arch/vax/uba/qv.c,v 1.33 2017/05/22 17:15:45 ragge Exp $*/
+/*$Header: /cvsroot/src/sys/arch/vax/uba/qv.c,v 1.34 2019/03/14 23:49:38 thorpej Exp $*/
 /*
  * Copyright (c) 2015 Charles H. Dickman. All rights reserved.
  * Derived from smg.c
@@ -31,7 +31,7 @@
 /*3456789012345678901234567890123456789012345678901234567890123456789012345678*/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$Header: /cvsroot/src/sys/arch/vax/uba/qv.c,v 1.33 2017/05/22 17:15:45 ragge Exp $");
+__KERNEL_RCSID(0, "$Header: /cvsroot/src/sys/arch/vax/uba/qv.c,v 1.34 2019/03/14 23:49:38 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -785,16 +785,18 @@ qv_setcursor(struct qv_softc *sc, struct
 	}
 	if (v->which & WSDISPLAY_CURSOR_DOCMAP) {
 		/* First background */
-		red = fusword(v->cmap.red);
-		green = fusword(v->cmap.green);
-		blue = fusword(v->cmap.blue);
-		bgmask = (((30L * red + 59L * green + 11L * blue) >> 8) >=
-		    (((1<<8)-1)*50)) ? ~0 : 0;
-		red = fusword(v->cmap.red+2);
-		green = fusword(v->cmap.green+2);
-		blue = fusword(v->cmap.blue+2);
-		fgmask = (((30L * red + 59L * green + 11L * blue) >> 8) >=
-		    (((1<<8)-1)*50)) ? ~0 : 0;
+		if (copyin(v->cmap.red, &red, sizeof(red)) == 0 &&
+		    copyin(v->cmap.green, &green, sizeof(green)) == 0 &&
+		    copyin(v->cmap.blue, &blue, sizeof(blue)) == 0) {
+			bgmask = (((30L * red + 59L * green + 11L * blue) >> 8)
+			    >= (((1<<8)-1)*50)) ? ~0 : 0;
+		}
+		if (copyin(v->cmap.red + 2, &red, sizeof(red)) == 0 &&
+		    copyin(v->cmap.green + 2, &green, sizeof(green)) == 0 &&
+		    copyin(v->cmap.blue + 2, &blue, sizeof(blue)) == 0) {
+			fgmask = (((30L * red + 59L * green + 11L * blue) >> 8)
+			    >= (((1<<8)-1)*50)) ? ~0 : 0;
+		}
 	}
 	if (v->which & WSDISPLAY_CURSOR_DOSHAPE) {
 		copyin(v->image, curfg, sizeof(curfg));

Index: src/sys/arch/vax/vsa/smg.c
diff -u src/sys/arch/vax/vsa/smg.c:1.57 src/sys/arch/vax/vsa/smg.c:1.58
--- src/sys/arch/vax/vsa/smg.c:1.57	Mon May 22 17:17:25 2017
+++ src/sys/arch/vax/vsa/smg.c	Thu Mar 14 23:49:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: smg.c,v 1.57 2017/05/22 17:17:25 ragge Exp $ */
+/*	$NetBSD: smg.c,v 1.58 2019/03/14 23:49:38 thorpej Exp $ */
 /*
  * Copyright (c) 1998 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smg.c,v 1.57 2017/05/22 17:17:25 ragge Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smg.c,v 1.58 2019/03/14 23:49:38 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -430,16 +430,18 @@ setcursor(struct wsdisplay_cursor *v)
 	}
 	if (v->which & WSDISPLAY_CURSOR_DOCMAP) {
 		/* First background */
-		red = fusword(v->cmap.red);
-		green = fusword(v->cmap.green);
-		blue = fusword(v->cmap.blue);
-		bgmask = (((30L * red + 59L * green + 11L * blue) >> 8) >=
-		    (((1<<8)-1)*50)) ? ~0 : 0;
-		red = fusword(v->cmap.red+2);
-		green = fusword(v->cmap.green+2);
-		blue = fusword(v->cmap.blue+2);
-		fgmask = (((30L * red + 59L * green + 11L * blue) >> 8) >=
-		    (((1<<8)-1)*50)) ? ~0 : 0;
+		if (copyin(v->cmap.red, &red, sizeof(red)) == 0 &&
+		    copyin(v->cmap.green, &green, sizeof(green)) == 0 &&
+		    copyin(v->cmap.blue, &blue, sizeof(blue)) == 0) {
+			bgmask = (((30L * red + 59L * green + 11L * blue) >> 8)
+			    >= (((1<<8)-1)*50)) ? ~0 : 0;
+		}
+		if (copyin(v->cmap.red + 2, &red, sizeof(red)) == 0 &&
+		    copyin(v->cmap.green + 2, &green, sizeof(green)) == 0 &&
+		    copyin(v->cmap.blue + 2, &blue, sizeof(blue)) == 0) {
+			fgmask = (((30L * red + 59L * green + 11L * blue) >> 8)
+			    >= (((1<<8)-1)*50)) ? ~0 : 0;
+		}
 	}
 	if (v->which & WSDISPLAY_CURSOR_DOSHAPE) {
 		WRITECUR(CUR_CMD, curcmd | CUR_CMD_LODSA);

Reply via email to