Introduce a new option (BOOT_PROMPT_123) that lets enter the boot prompt
only when typing the sequence "123" (opposite to the standard 'push any button' approach). That results useful when using serial lines sending garbage and leading to unwilling boot prompt appearence. Obtained from: Sandvine Incorporated Reviewed by: emaste, jhb Sponsored by: Sandvine Incorporated MFC: 1 week
This commit is contained in:
parent
023c800576
commit
909feda120
@ -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
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user