mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
Fix up parse word so that it can correctly handle empty arguments and (encode-bootpath) word so that it can handle optional
arguments. With these fixes in place we can now switch the boot word to use (encode-bootpath) which means that the bootpath and bootarg properties are now set exactly the same when executing boot and/or load. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@803 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
committed by
Mark Cave-Ayland
parent
cab993ac04
commit
50e344721c
@@ -1,7 +1,7 @@
|
||||
\ 7.4.3.5 User commands for booting
|
||||
|
||||
: boot ( "{param-text}<cr>" -- )
|
||||
linefeed parse cr
|
||||
(encode-bootpath)
|
||||
s" platform-boot" $find if
|
||||
execute
|
||||
else
|
||||
|
||||
@@ -704,6 +704,11 @@ variable span 0 span !
|
||||
>r \ save delimiter
|
||||
ib >in @ +
|
||||
span @ >in @ - \ ib+offs len-offset.
|
||||
dup 0 < if \ if we are already at the end of the string, return an empty string
|
||||
+ 0 \ move to end of input string
|
||||
r> drop
|
||||
exit
|
||||
then
|
||||
2dup r> \ ib+offs len-offset ib+offs len-offset delim
|
||||
findchar if \ look for the delimiter.
|
||||
nip dup 1+
|
||||
|
||||
@@ -56,13 +56,21 @@ variable file-size
|
||||
;
|
||||
|
||||
: (encode-bootpath) ( "{params}<cr>" -- bootpath-str bootpath-len)
|
||||
bl parse 2dup encode-string
|
||||
" /chosen" (find-dev) if
|
||||
" bootpath" rot (property)
|
||||
\ Parse the current input buffer of a load/boot command and set both
|
||||
\ the bootargs and bootpath properties as appropriate.
|
||||
bl parse dup if
|
||||
2dup encode-string
|
||||
" /chosen" (find-dev) if
|
||||
" bootpath" rot (property)
|
||||
then
|
||||
then
|
||||
linefeed parse encode-string
|
||||
" /chosen" (find-dev) if
|
||||
" bootargs" rot (property)
|
||||
linefeed parse dup if
|
||||
encode-string
|
||||
" /chosen" (find-dev) if
|
||||
" bootargs" rot (property)
|
||||
then
|
||||
else
|
||||
2drop
|
||||
then
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user