mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
In the IEEE 1275-1994 specification the parameters for Client Interface calls
are not in forth stack order but in reversed (heh!) order. Our implementation confused this. This might / will need some more work, but get this in so more people can test easily. From Mark Cave-Ayland and me. git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@624 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
@@ -189,14 +189,12 @@ external
|
|||||||
|
|
||||||
: call-method ( ihandle method -- xxxx catch-result )
|
: call-method ( ihandle method -- xxxx catch-result )
|
||||||
dup 0= if ." call of null method" -1 exit then
|
dup 0= if ." call of null method" -1 exit then
|
||||||
dup >r
|
|
||||||
dup cstrlen
|
|
||||||
\ ." call-method " 2dup type cr
|
\ ." call-method " 2dup type cr
|
||||||
rot ?ihandle ['] $call-method catch dup if
|
rot ?ihandle ['] $call-method catch if
|
||||||
\ not necessary an error but very useful for debugging...
|
\ not necessary an error but very useful for debugging...
|
||||||
." call-method " r@ dup cstrlen type ." : exception " dup . cr
|
." call-method " r@ dup cstrlen type ." : exception " dup . cr
|
||||||
then
|
then
|
||||||
r> drop
|
\ r> drop
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@@ -212,21 +210,16 @@ external
|
|||||||
close-dev
|
close-dev
|
||||||
;
|
;
|
||||||
|
|
||||||
: read ( ihandle addr len -- actual )
|
: read ( len addr ihandle -- actual )
|
||||||
rot dup ihandle>phandle " read" rot find-method
|
rot swap " read" call-method
|
||||||
if swap call-package else 3drop -1 then
|
|
||||||
;
|
;
|
||||||
|
|
||||||
: write ( ihandle addr len -- actual )
|
: write ( len addr ihandle -- actual )
|
||||||
rot dup ihandle>phandle " write" rot find-method
|
rot swap " write" call-method
|
||||||
if swap call-package else 3drop -1 then
|
|
||||||
;
|
;
|
||||||
|
|
||||||
: seek ( ihandle pos_hi pos_lo -- status )
|
: seek ( pos_lo pos_hi ihandle -- status )
|
||||||
\ package methods uses ( pos_lo pos_hi -- status )
|
" seek" call-method
|
||||||
swap
|
|
||||||
rot dup ihandle>phandle " seek" rot find-method
|
|
||||||
if swap call-package else 3drop -1 then
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@@ -261,7 +254,7 @@ external
|
|||||||
|
|
||||||
: interpret ( xxx cmdstring -- ??? catch-reult )
|
: interpret ( xxx cmdstring -- ??? catch-reult )
|
||||||
dup cstrlen
|
dup cstrlen
|
||||||
\ ." INTERPRETE: --- " 2dup type
|
\ ." INTERPRET: --- " 2dup type
|
||||||
['] evaluate catch dup if
|
['] evaluate catch dup if
|
||||||
\ this is not necessary an error...
|
\ this is not necessary an error...
|
||||||
." interpret: exception " dup . ." caught" cr
|
." interpret: exception " dup . ." caught" cr
|
||||||
|
|||||||
Reference in New Issue
Block a user