diff options
author | dfr <dfr@FreeBSD.org> | 1999-11-03 20:18:12 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1999-11-03 20:18:12 +0000 |
commit | 3e244562225967053d66637f4004a3f162300e94 (patch) | |
tree | 39d4b33bf6e9caa79f0bb66c5ba4720a34d3f585 /sys/boot/alpha | |
parent | c30c23e035b7865d98b3d3203a42334a05cc0a58 (diff) | |
download | FreeBSD-src-3e244562225967053d66637f4004a3f162300e94.zip FreeBSD-src-3e244562225967053d66637f4004a3f162300e94.tar.gz |
* Don't wait forever for the boot2 filename if the PCC wraps.
* If the user presses return, load boot2 immediately.
Diffstat (limited to 'sys/boot/alpha')
-rw-r--r-- | sys/boot/alpha/boot1/boot1.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/boot/alpha/boot1/boot1.c b/sys/boot/alpha/boot1/boot1.c index afae04a..b4dc995 100644 --- a/sys/boot/alpha/boot1/boot1.c +++ b/sys/boot/alpha/boot1/boot1.c @@ -163,7 +163,7 @@ devclose() } static void -getfilename(char *filename) +getfilename(char *filename, const char *defname) { int c; char *p = filename; @@ -183,6 +183,8 @@ getfilename(char *filename) } putchar('\n'); *p = '\0'; + if (!*filename) + strcpy(filename, defname); return; } @@ -235,9 +237,10 @@ main() start = rpcc(); freq = ((struct rpb *)HWRPB_ADDR)->rpb_cc_freq; - while (rpcc() < start + freq) { + while (((rpcc() - start) & 0xffffffff) < freq) { + twiddle(); if (ischar()) { - getfilename(filename); + getfilename(filename, name); name = filename; break; } |