mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
Refactoring of the OpenBIOS source code, as discussed on the mailing list. The primary aim of this process is to try and arrange
the source files into a structure whereby it is easier to find the relationship between a forth package word and its C implementation, while also creating a libopenbios library into which more common code from the arch/ tree can eventually be moved. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@685 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
committed by
Mark Cave-Ayland
parent
0d5f749065
commit
dbf16392cc
36
libopenbios/clib.fs
Normal file
36
libopenbios/clib.fs
Normal file
@@ -0,0 +1,36 @@
|
||||
\ tag: C helpers
|
||||
\
|
||||
\ Misc C helpers
|
||||
\
|
||||
\ Copyright (C) 2003, 2004 Samuel Rydh
|
||||
\
|
||||
\ See the file "COPYING" for further information about
|
||||
\ the copyright and warranty status of this work.
|
||||
\
|
||||
|
||||
\ should perhaps be moved somewhere else
|
||||
: set-property ( buf len propname propname-len phandle -- )
|
||||
>r 2swap encode-bytes 2swap r> encode-property
|
||||
;
|
||||
|
||||
\ install C function
|
||||
: is-cfunc ( funcaddr word word-len -- )
|
||||
$create , does> @ call
|
||||
;
|
||||
|
||||
\ install a nameless C function
|
||||
: is-noname-cfunc ( funcaddr -- xt )
|
||||
0 0 is-cfunc last-xt
|
||||
;
|
||||
|
||||
\ is-xt-cfunc installs a function which does the following:
|
||||
\ - xt is executes
|
||||
\ - funcarg is pushed
|
||||
\ - funcaddr is called
|
||||
|
||||
: is-xt-cfunc ( xt|0 funcarg funcaddr word word-len -- )
|
||||
is-func-begin
|
||||
rot ?dup if , then
|
||||
swap ['] (lit) , , ['] (lit) , , ['] call ,
|
||||
is-func-end
|
||||
;
|
||||
Reference in New Issue
Block a user