svn commit: r199650 - stable/8/sys/boot/common

Attilio Rao attilio at FreeBSD.org
Sun Nov 22 15:57:08 UTC 2009


Author: attilio
Date: Sun Nov 22 15:57:08 2009
New Revision: 199650
URL: http://svn.freebsd.org/changeset/base/199650

Log:
  MFC r199210:
  Introduce the new loader compile-time option BOOT_PROMPT_123 which allows
  to enter the loader prompt just after entering the sequence "123".
  
  Sponsored by:	Sandvine Incorporated

Modified:
  stable/8/sys/boot/common/Makefile.inc
  stable/8/sys/boot/common/boot.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/boot/common/Makefile.inc
==============================================================================
--- stable/8/sys/boot/common/Makefile.inc	Sun Nov 22 15:53:39 2009	(r199649)
+++ stable/8/sys/boot/common/Makefile.inc	Sun Nov 22 15:57:08 2009	(r199650)
@@ -38,4 +38,8 @@ MAN+=	../forth/loader.conf.5
 MAN+=	../forth/loader.4th.8
 .endif
 
+.if defined(BOOT_PROMPT_123)
+CFLAGS+=	-DBOOT_PROMPT_123
+.endif
+
 MAN+=	loader.8

Modified: stable/8/sys/boot/common/boot.c
==============================================================================
--- stable/8/sys/boot/common/boot.c	Sun Nov 22 15:53:39 2009	(r199649)
+++ stable/8/sys/boot/common/boot.c	Sun Nov 22 15:57:08 2009	(r199650)
@@ -162,6 +162,9 @@ autoboot(int timeout, char *prompt)
     int		c, yes;
     char	*argv[2], *cp, *ep;
     char	*kernelname;
+#ifdef BOOT_PROMPT_123
+    const char	*seq = "123", *p = seq;
+#endif
 
     autoboot_tried = 1;
 
@@ -192,14 +195,29 @@ autoboot(int timeout, char *prompt)
 
         yes = 0;
 
+#ifdef BOOT_PROMPT_123
+        printf("%s\n", (prompt == NULL) ? "Hit [Enter] to boot immediately, or "
+	    "1 2 3 sequence for command prompt." : prompt);
+#else
         printf("%s\n", (prompt == NULL) ? "Hit [Enter] to boot immediately, or any other key for command prompt." : prompt);
+#endif
 
         for (;;) {
 	    if (ischar()) {
 	        c = getchar();
+#ifdef BOOT_PROMPT_123
+		if ((c == '\r') || (c == '\n')) {
+			yes = 1;
+			break;
+		} else if (c != *p++)
+			p = seq;
+		if (*p == 0)
+			break;
+#else
 	        if ((c == '\r') || (c == '\n'))
 		    yes = 1;
 	        break;
+#endif
 	    }
 	    ntime = time(NULL);
 	    if (ntime >= when) {


More information about the svn-src-stable-8 mailing list