diff options
author | Toomas Soome <tsoome@me.com> | 2018-01-24 16:18:00 +0200 |
---|---|---|
committer | Dan McDonald <danmcd@joyent.com> | 2018-01-25 10:07:48 -0500 |
commit | 9aa2d72c0b7ffd836b0f633a523c698cfa854256 (patch) | |
tree | cca2adc1742d55724cc173f4d489ce28f09a5a88 | |
parent | a48ca82f1984529f9cbef045f39cd6efa1be7713 (diff) | |
download | illumos-joyent-9aa2d72c0b7ffd836b0f633a523c698cfa854256.tar.gz |
8986 loader: try_multiple_kernels does not try multiple kernels
Reviewed by: Yuri Pankov <yuripv@icloud.com>
Reviewed by: Rich Lowe <richlowe@richlowe.net>
Approved by: Dan McDonald <danmcd@joyent.com>
-rw-r--r-- | usr/src/boot/sys/boot/forth/support.4th | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/usr/src/boot/sys/boot/forth/support.4th b/usr/src/boot/sys/boot/forth/support.4th index 8b30502724..b95068f745 100644 --- a/usr/src/boot/sys/boot/forth/support.4th +++ b/usr/src/boot/sys/boot/forth/support.4th @@ -1553,17 +1553,6 @@ also builtins \ Parse filename from a semicolon-separated list -\ replacement, not working yet -: newparse-; { addr len | a1 -- a' len-x addr x } - addr len [char] ; strchr dup if ( a1 len1 ) - swap to a1 ( store address ) - 1 - a1 @ 1 + swap ( remove match ) - addr a1 addr - - else - 0 0 addr len - then -; - : parse-; ( addr len -- addr' len-x addr x ) over 0 2swap ( addr 0 addr len ) begin @@ -1594,11 +1583,19 @@ also builtins dup 2 = if ." Flags : " >r 2over type r> cr then then \ if it's xen, the xen kernel is loaded, unix needs to be loaded as module - s" xen_kernel" getenv -1 = if - 1 load \ normal kernel - else - drop - >r s" kernel" s" -t " r> 2 + 1 load + s" xen_kernel" getenv -1 <> if + drop \ drop address from getenv + >r \ argument count to R + s" kernel" s" -t " \ push 2 strings into the stack + r> 2 + \ increment argument count + then + + 1 ['] load catch dup if + ( addr0 len0 addr1 len1 ... args 1 error ) + >r \ error code to R + drop \ drop 1 + 0 do 2drop loop \ drop addr len pairs + r> \ set flag for while then while dup 0= |