summaryrefslogtreecommitdiffstats
path: root/sys/boot/forth
diff options
context:
space:
mode:
authordcs <dcs@FreeBSD.org>2000-10-09 11:29:40 +0000
committerdcs <dcs@FreeBSD.org>2000-10-09 11:29:40 +0000
commit9dfb8b6e13f05d19533fa203776a55d7a0629005 (patch)
tree7e39933b58c41e10314a62271ce69e3dd0c70504 /sys/boot/forth
parent7224891b27f869d4a1676ac9f2df0852c7c3a978 (diff)
downloadFreeBSD-src-9dfb8b6e13f05d19533fa203776a55d7a0629005.zip
FreeBSD-src-9dfb8b6e13f05d19533fa203776a55d7a0629005.tar.gz
Now I see the error of my ways.
Previous revision of this file changed the "boot" commands to take no arguments from the stack. This is only valid in the case where a kernel has not been loaded. In that case, load_kernel_and_modules will be called, which takes a list of arguments from the stack. When a kernel is presently loaded, though, the list of arguments must be passed to the boot command, which was the behaviour before the last revision. Fix things for both cases. Noticed by: S-Max and others on that chat room
Diffstat (limited to 'sys/boot/forth')
-rw-r--r--sys/boot/forth/loader.4th14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/boot/forth/loader.4th b/sys/boot/forth/loader.4th
index 51bfc92..f002c07 100644
--- a/sys/boot/forth/loader.4th
+++ b/sys/boot/forth/loader.4th
@@ -65,17 +65,19 @@ only forth also support-functions also builtins definitions
c@ [char] - <> if
0 1 unload drop
else
- s" kernelname" getenv? 0= if ( no kernel has been loaded )
- load_kernel_and_modules
- ?dup if exit then
+ s" kernelname" getenv? if ( a kernel has been loaded )
+ 1 boot exit
then
+ load_kernel_and_modules
+ ?dup if exit then
0 1 boot exit
then
else
- s" kernelname" getenv? 0= if ( no kernel has been loaded )
- load_kernel_and_modules
- ?dup if exit then
+ s" kernelname" getenv? if ( a kernel has been loaded )
+ 1 boot exit
then
+ load_kernel_and_modules
+ ?dup if exit then
0 1 boot exit
then
load_kernel_and_modules
OpenPOWER on IntegriCloud