svn commit: r336431 - head/stand/efi/libefi

Warner Losh imp at FreeBSD.org
Tue Jul 17 21:45:15 UTC 2018


Author: imp
Date: Tue Jul 17 21:45:14 2018
New Revision: 336431
URL: https://svnweb.freebsd.org/changeset/base/336431

Log:
  Remove bogus attempt to simulate scrolling. It's not needed and messes
  up serial output. Setting the cursor position after every character is
  inefficient, and causes all lines to be over-printed in the serial
  console for the boot loader. Allow the terminal to do the emulation.
  
  This isn't completely perfect when the size of the terminal attached
  to the serial port isn't the same as 80x25 to match the viedoe console
  (or whatever the video console is). While imperfect still, these
  changes make it much better.
  
  This makes the serial port useful with UEFI.
  
  Differential Revision: https://reviews.freebsd.org/D16309

Modified:
  head/stand/efi/libefi/efi_console.c

Modified: head/stand/efi/libefi/efi_console.c
==============================================================================
--- head/stand/efi/libefi/efi_console.c	Tue Jul 17 21:18:49 2018	(r336430)
+++ head/stand/efi/libefi/efi_console.c	Tue Jul 17 21:45:14 2018	(r336431)
@@ -147,20 +147,20 @@ efi_cons_rawputchar(int c)
 		switch (c) {
 		case '\r':
 			curx = 0;
-			curs_move(&curx, &cury, curx, cury);
+			efi_cons_efiputchar('\r');
 			return;
 		case '\n':
+			efi_cons_efiputchar('\n');
+			efi_cons_efiputchar('\r');
 			cury++;
-			if (cury >= y) {
-				efi_cons_efiputchar('\n');
+			if (cury >= y)
 				cury--;
-			} else
-				curs_move(&curx, &cury, curx, cury);
+			curx = 0;
 			return;
 		case '\b':
 			if (curx > 0) {
+				efi_cons_efiputchar('\b');
 				curx--;
-				curs_move(&curx, &cury, curx, cury);
 			}
 			return;
 		default:
@@ -175,7 +175,6 @@ efi_cons_rawputchar(int c)
 				cury--;
 			}
 		}
-		curs_move(&curx, &cury, curx, cury);
 #endif
 	}
 }


More information about the svn-src-head mailing list