Module Name:    src
Committed By:   jmcneill
Date:           Fri Feb 18 13:56:11 UTC 2011

Modified Files:
        src/sys/dev/wscons: wsdisplay_vcons.c wsdisplay_vconsvar.h

Log Message:
add vcons_hard_switch, for switching w/o callouts (eg. entering ddb)


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/wscons/wsdisplay_vcons.c
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/wscons/wsdisplay_vconsvar.h

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

Modified files:

Index: src/sys/dev/wscons/wsdisplay_vcons.c
diff -u src/sys/dev/wscons/wsdisplay_vcons.c:1.23 src/sys/dev/wscons/wsdisplay_vcons.c:1.24
--- src/sys/dev/wscons/wsdisplay_vcons.c:1.23	Wed Feb  9 13:19:18 2011
+++ src/sys/dev/wscons/wsdisplay_vcons.c	Fri Feb 18 13:56:11 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: wsdisplay_vcons.c,v 1.23 2011/02/09 13:19:18 jmcneill Exp $ */
+/*	$NetBSD: wsdisplay_vcons.c,v 1.24 2011/02/18 13:56:11 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2005, 2006 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsdisplay_vcons.c,v 1.23 2011/02/09 13:19:18 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsdisplay_vcons.c,v 1.24 2011/02/18 13:56:11 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1479,3 +1479,21 @@
 		atomic_inc_uint(&scr->scr_dirty);
 #endif
 }
+
+void
+vcons_hard_switch(struct vcons_screen *scr)
+{
+	struct vcons_data *vd = scr->scr_vd;
+	struct vcons_screen *oldscr = vd->active;
+
+	if (oldscr) {
+		SCREEN_INVISIBLE(oldscr);
+		oldscr->scr_ri.ri_flg &= ~RI_CURSOR;
+	}
+	SCREEN_VISIBLE(scr);
+	vd->active = scr;
+	vd->wanted = NULL;
+
+	if (vd->show_screen_cb != NULL)
+		vd->show_screen_cb(scr);
+}

Index: src/sys/dev/wscons/wsdisplay_vconsvar.h
diff -u src/sys/dev/wscons/wsdisplay_vconsvar.h:1.17 src/sys/dev/wscons/wsdisplay_vconsvar.h:1.18
--- src/sys/dev/wscons/wsdisplay_vconsvar.h:1.17	Wed Feb  9 13:19:19 2011
+++ src/sys/dev/wscons/wsdisplay_vconsvar.h	Fri Feb 18 13:56:11 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: wsdisplay_vconsvar.h,v 1.17 2011/02/09 13:19:19 jmcneill Exp $ */
+/*	$NetBSD: wsdisplay_vconsvar.h,v 1.18 2011/02/18 13:56:11 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2005, 2006 Michael Lorenz
@@ -177,5 +177,6 @@
 
 void	vcons_enable_polling(struct vcons_data *);
 void	vcons_disable_polling(struct vcons_data *);
+void	vcons_hard_switch(struct vcons_screen *);
 
 #endif /* _WSDISPLAY_VCONS_H_ */

Reply via email to