diff options
author | dcs <dcs@FreeBSD.org> | 2000-10-09 11:29:40 +0000 |
---|---|---|
committer | dcs <dcs@FreeBSD.org> | 2000-10-09 11:29:40 +0000 |
commit | 9dfb8b6e13f05d19533fa203776a55d7a0629005 (patch) | |
tree | 7e39933b58c41e10314a62271ce69e3dd0c70504 /sys/boot/forth | |
parent | 7224891b27f869d4a1676ac9f2df0852c7c3a978 (diff) | |
download | FreeBSD-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.4th | 14 |
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 |