svn commit: r256897 - in user/ed/newcons/sys: kern sys

Aleksandr Rybalko ray at FreeBSD.org
Tue Oct 22 14:00:47 UTC 2013


Author: ray
Date: Tue Oct 22 14:00:46 2013
New Revision: 256897
URL: http://svnweb.freebsd.org/changeset/base/256897

Log:
  Add new terminal method terminal_set_winsize_blank. Same as terminal_set_winsize,
  but with optional blank. That will allow us to see early messages after attach
  more specific driver.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  user/ed/newcons/sys/kern/subr_terminal.c
  user/ed/newcons/sys/sys/terminal.h

Modified: user/ed/newcons/sys/kern/subr_terminal.c
==============================================================================
--- user/ed/newcons/sys/kern/subr_terminal.c	Tue Oct 22 13:56:42 2013	(r256896)
+++ user/ed/newcons/sys/kern/subr_terminal.c	Tue Oct 22 14:00:46 2013	(r256897)
@@ -188,7 +188,8 @@ terminal_maketty(struct terminal *tm, co
 }
 
 void
-terminal_set_winsize(struct terminal *tm, const struct winsize *size)
+terminal_set_winsize_blank(struct terminal *tm, const struct winsize *size,
+    int blank)
 {
 	term_rect_t r;
 
@@ -201,14 +202,21 @@ terminal_set_winsize(struct terminal *tm
 	TERMINAL_LOCK(tm);
 	teken_set_winsize(&tm->tm_emulator, &r.tr_end);
 	TERMINAL_UNLOCK(tm);
-	
-	/* Blank screen. */
-	tm->tm_class->tc_fill(tm, &r,
-	    TCHAR_CREATE((teken_char_t)' ', &default_message));
+
+	if (blank)
+		tm->tm_class->tc_fill(tm, &r,
+		    TCHAR_CREATE((teken_char_t)' ', &default_message));
 
 	terminal_sync_ttysize(tm);
 }
 
+void
+terminal_set_winsize(struct terminal *tm, const struct winsize *size)
+{
+
+	terminal_set_winsize_blank(tm, size, 1);
+}
+
 /*
  * XXX: This function is a kludge.  Drivers like vt(4) need to
  * temporarily stop input when resizing, etc.  This should ideally be

Modified: user/ed/newcons/sys/sys/terminal.h
==============================================================================
--- user/ed/newcons/sys/sys/terminal.h	Tue Oct 22 13:56:42 2013	(r256896)
+++ user/ed/newcons/sys/sys/terminal.h	Tue Oct 22 14:00:46 2013	(r256897)
@@ -135,6 +135,8 @@ struct terminal {
 
 struct terminal *terminal_alloc(const struct terminal_class *tc, void *softc);
 void	terminal_maketty(struct terminal *tm, const char *fmt, ...);
+void	terminal_set_winsize_blank(struct terminal *tm,
+    const struct winsize *size, int blank);
 void	terminal_set_winsize(struct terminal *tm, const struct winsize *size);
 void	terminal_mute(struct terminal *tm, int yes);
 void	terminal_input_char(struct terminal *tm, term_char_t c);


More information about the svn-src-user mailing list