Mercurial > unleashed > prev-conversion
changeset 18795:5ed5688cf19c
8986 loader: try_multiple_kernels does not try multiple kernels
author | Toomas Soome <tsoome@me.com> |
---|---|
date | Wed, 24 Jan 2018 16:18:00 +0200 |
parents | 1b9f225f53c2 |
children | ca553a1f31f0 |
files | usr/src/boot/sys/boot/forth/support.4th |
diffstat | 1 files changed, 13 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/boot/sys/boot/forth/support.4th Thu Jan 18 19:09:30 2018 +0200 +++ b/usr/src/boot/sys/boot/forth/support.4th Wed Jan 24 16:18:00 2018 +0200 @@ -1553,17 +1553,6 @@ \ 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 @@ 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=