Author: wmb Date: Fri Jun 29 22:46:30 2012 New Revision: 3021 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3021
Log: Changed OFW core code to allow phandle values to be origin-relative addresses instead of absolute (possibly run-time-relocated) addresses, thus making it much easier to encode phandle values in properties built at compile time.
Modified: cpu/arm/mmp2/fw.bth cpu/arm/mmp2/mmp2.bth cpu/arm/olpc/banner.fth cpu/arm/olpc/prefw.fth cpu/mips/bonito/forthmon.bth cpu/mips/bonito/fw.bth cpu/mips/broadcom/avx/fw.bth cpu/mips/cobalt/fw.bth cpu/x86/pc/alex/fw.bth cpu/x86/pc/biosload/fw.bth cpu/x86/pc/emu/fw.bth cpu/x86/pc/lxdevel/fw.bth cpu/x86/pc/neptune/fw.bth cpu/x86/pc/newton/fw.bth cpu/x86/pc/olpc/banner.fth cpu/x86/pc/olpc/fw.bth cpu/x86/pc/olpc/via/banner.fth cpu/x86/pc/olpc/via/fw.bth ofw/core/ofwcore.fth ofw/inet/dhcp.fth ofw/inetv6/dhcp.fth
Modified: cpu/arm/mmp2/fw.bth ============================================================================== --- cpu/arm/mmp2/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/arm/mmp2/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -47,7 +47,7 @@ device-end
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/arm/mmp2/mmp2.bth ============================================================================== --- cpu/arm/mmp2/mmp2.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/arm/mmp2/mmp2.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -72,7 +72,7 @@ device-end
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/arm/olpc/banner.fth ============================================================================== --- cpu/arm/olpc/banner.fth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/arm/olpc/banner.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -113,7 +113,7 @@ ;
: .ec - " ec-name" ['] root-node get-package-property 0= if ( adr len ) + " ec-name" root-phandle get-package-property 0= if ( adr len ) get-encoded-string ." EC Firmware " type then ;
Modified: cpu/arm/olpc/prefw.fth ============================================================================== --- cpu/arm/olpc/prefw.fth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/arm/olpc/prefw.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -50,7 +50,7 @@ device-end
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/mips/bonito/forthmon.bth ============================================================================== --- cpu/mips/bonito/forthmon.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/mips/bonito/forthmon.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -38,7 +38,7 @@ device-end
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/mips/bonito/fw.bth ============================================================================== --- cpu/mips/bonito/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/mips/bonito/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -44,7 +44,7 @@ device-end
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/mips/broadcom/avx/fw.bth ============================================================================== --- cpu/mips/broadcom/avx/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/mips/broadcom/avx/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -60,7 +60,7 @@ d# 81,000,000 to cpu-clock-speed \ CPU clock in Hz
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/mips/cobalt/fw.bth ============================================================================== --- cpu/mips/cobalt/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/mips/cobalt/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -72,7 +72,7 @@ device-end
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/alex/fw.bth ============================================================================== --- cpu/x86/pc/alex/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/alex/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -50,7 +50,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/biosload/fw.bth ============================================================================== --- cpu/x86/pc/biosload/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/biosload/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -53,7 +53,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/emu/fw.bth ============================================================================== --- cpu/x86/pc/emu/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/emu/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -50,7 +50,7 @@ fload ${BP}/cpu/x86/initpgm.fth \ Basic boot handler
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/lxdevel/fw.bth ============================================================================== --- cpu/x86/pc/lxdevel/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/lxdevel/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -54,7 +54,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/neptune/fw.bth ============================================================================== --- cpu/x86/pc/neptune/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/neptune/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -53,7 +53,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/newton/fw.bth ============================================================================== --- cpu/x86/pc/newton/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/newton/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -50,7 +50,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/olpc/banner.fth ============================================================================== --- cpu/x86/pc/olpc/banner.fth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/olpc/banner.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -19,7 +19,7 @@ ;
: .ec - " ec-name" ['] root-node get-package-property 0= if ( adr len ) + " ec-name" root-phandle get-package-property 0= if ( adr len ) get-encoded-string ." EC Firmware " type then ;
Modified: cpu/x86/pc/olpc/fw.bth ============================================================================== --- cpu/x86/pc/olpc/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/olpc/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -53,7 +53,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: cpu/x86/pc/olpc/via/banner.fth ============================================================================== --- cpu/x86/pc/olpc/via/banner.fth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/olpc/via/banner.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -113,7 +113,7 @@ ;
: .ec - " ec-name" ['] root-node get-package-property 0= if ( adr len ) + " ec-name" root-phandle get-package-property 0= if ( adr len ) get-encoded-string ." EC Firmware " type then ;
Modified: cpu/x86/pc/olpc/via/fw.bth ============================================================================== --- cpu/x86/pc/olpc/via/fw.bth Fri Jun 29 22:32:59 2012 (r3020) +++ cpu/x86/pc/olpc/via/fw.bth Fri Jun 29 22:46:30 2012 (r3021) @@ -53,7 +53,7 @@ fload ${BP}/cpu/x86/msr.fth \ Access to machine specific registers
: (cpu-arch ( -- adr len ) - " architecture" ['] root-node get-package-property drop + " architecture" root-phandle get-package-property drop get-encoded-string ; ' (cpu-arch to cpu-arch
Modified: ofw/core/ofwcore.fth ============================================================================== --- ofw/core/ofwcore.fth Fri Jun 29 22:32:59 2012 (r3020) +++ ofw/core/ofwcore.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -682,6 +682,13 @@
defer voc>phandle ' noop to voc>phandle defer phandle>voc ' noop to phandle>voc +defer dt-null ' null to dt-null + +\ : : : lastacf .name cr ; + +: rel-voc>phandle ( voc -- ph ) origin - ; ' rel-voc>phandle to voc>phandle +: rel-phandle>voc ( ph -- voc ) origin + ; ' rel-phandle>voc to phandle>voc +' 0 to dt-null
\ TODO \ Don't use the system search order; use a private stack @@ -689,9 +696,11 @@ \ Change names back from "regprop" to "reg", etc. \ Either implement a true breadth-first search or don't specify it.
+: cdev drop context token@ voc>phandle ; +: devc drop phandle>voc context token! definitions ; 2 actions -action: drop context token@ voc>phandle ; -action: drop phandle>voc context token! definitions ; +action: cdev ; +action: devc ; create current-device use-actions
headerless @@ -725,7 +734,7 @@ constant /devnode-extra
headers -: >parent ( node -- parent-node ) >voc-link link@ voc>phandle ; +: >parent ( node -- parent-node ) phandle>voc >voc-link link@ voc>phandle ; : parent-device ( -- parent-node ) current-device >parent ;
: (select-package) ( phandle -- ) phandle>voc execute ; @@ -739,8 +748,9 @@ : push-device ( acf -- ) to current-device ;
: pop-device ( -- ) - parent-device ( parent-voc ) - non-null? if push-device then + parent-device ( parent-phandle ) + dup dt-null <> if push-device else drop then +\ non-null? if push-device then ;
\ Each package instance has its own private data storage area. @@ -1099,7 +1109,7 @@
\ Internal factor used to implement first-child and next-child : set-child? ( link-adr -- flag ) - get-token? if push-device true else false then + get-token? if voc>phandle push-device true else false then ;
\ Interface to searching code in breadth.fth: @@ -1125,7 +1135,7 @@ \ Allocate user (RAM) space for properties, "last" field, children, peers /devnode-extra unaligned-ualloc drop
- lastacf push-device ( parent's-child-field ) + lastacf voc>phandle push-device ( parent's-child-field ) ; : init-properties ( -- ) (vocabulary) lastacf 'properties token! ;
@@ -1150,7 +1160,7 @@ headerless : link-to-peer ( parent's-child-field -- ) dup token@ 'peer token! ( parent's-child-field ) - current-device swap token! ( ) + current-device phandle>voc swap token! ( ) ; : device-node? ( voc -- flag ) voc-link begin another-link? while ( voc link ) @@ -1187,7 +1197,7 @@
headers : new-node ( -- ) - (vocabulary) current-device link, ( ) \ Up-link to parent device + (vocabulary) current-device phandle>voc link, ( ) \ Up-link to parent device
\ Save parent linkage address on stack for later use 'child ( parent's-child-field ) @@ -1266,10 +1276,11 @@ 0 init-node allot-package-data device-end +: root-phandle ( -- ph ) ['] root-node voc>phandle ;
-: root-device ( -- ) only forth also ['] root-node push-device ; +: root-device ( -- ) only forth also root-phandle push-device ;
-: root-device? ( -- flag ) parent-device null = ; +: root-device? ( -- flag ) parent-device dt-null = ;
: finish-device ( -- ) finish-package-data pop-device ;
@@ -1732,10 +1743,10 @@ \ The path starts at the root directory if the first character is "/"; \ otherwise it starts at the current directory dup 1 >= if ( str$ ) - over c@ ascii / = if 1 /string ['] root-node push-device then + over c@ ascii / = if 1 /string root-phandle push-device then then ( str$ )
- current-device null = ?not-found + current-device dt-null = ?not-found device-context? 0= ?not-found (find-device) ; @@ -1939,7 +1950,7 @@ device-context? if 'child token@ ( first-node ) begin non-null? while ( node ) - push-device ( ) + voc>phandle push-device ( ) .nodeid ( ) 'peer token@ ( node' ) pop-device @@ -1970,7 +1981,7 @@ ; : .voc-name ( a -- ) dup device-node? if - current-device swap context token! (pwd) space + current-device phandle>voc swap context token! (pwd) space context token! else .name @@ -2050,10 +2061,10 @@ \ transient headerless : relink-device ( -- false ) - current-device relink-voc false + current-device phandle>voc relink-voc false ; : relink-devices ( -- ) - ['] root-node push-package + root-phandle push-package ['] relink-device (search-preorder) drop pop-package ; @@ -2076,7 +2087,7 @@ ' noop is fm-hook
: find-method ( adr len phandle -- false | acf true ) - fm-hook (search-wordlist) + fm-hook phandle>voc (search-wordlist) ;
headerless @@ -2098,7 +2109,7 @@ headers : $call-self ( adr len -- ) my-self if - my-voc fm-hook $find-word if execute exit then + my-voc fm-hook phandle>voc $find-word if execute exit then then my-self to error-instance error-instance if my-voc to error-package then @@ -2195,7 +2206,7 @@ \ because we use "exit" to make the control flow easier. : (get-any) ( adr len -- true | adr' len' false ) begin my-self while ( adr len ) \ Search up parent chain - my-voc current token! ( adr len ) + my-voc phandle>voc current token! ( adr len ) 2dup get-my-property 0= if ( adr len adr' len' ) 2swap 2drop false exit ( adr' len' false ) \ Found then ( adr len ) @@ -2433,7 +2444,7 @@ ?dup if ( path$ ) \ Establish the initial parent also ( path$ ) - null to current-device ( path$ ) + dt-null to current-device ( path$ ) ['] (open-path) catch dup if nip nip then ( error? ) previous definitions ( error? ) throw ( ) @@ -2596,7 +2607,7 @@
: (execute-phandle-method) ( method-adr,len phandle -- ??? ) 0 to unit#-valid? ( method-adr,len phandle ) - dup >parent null open-parents ( method-adr,len phandle ) + dup >parent dt-null open-parents ( method-adr,len phandle ) push-device ( method-adr,len ) " " new-instance ( method-adr,len ) set-default-unit ( method-adr,len ) @@ -2608,7 +2619,7 @@ 0 package( ( phandle ) current-device >r ( phandle ) 0 to unit#-valid? ( phandle ) - null ['] open-parents catch if ( x x ) + dt-null ['] open-parents catch if ( x x ) 2drop 0 ( 0 ) else ( ) my-self ( ihandle ) @@ -2674,7 +2685,7 @@ : my-parent-#size-cells ( -- #size-cells ) \ Root node has no parent, therefore the size of its parent's address \ space is meaningless - my-voc ['] root-node = if 0 exit then + my-voc root-phandle = if 0 exit then
" #size-cells" my-parent ihandle>phandle ( adr len phandle ) get-package-property if 1 else get-encoded-int then @@ -2756,6 +2767,9 @@ >r >r >r encode-phys r> r> r> encode-reg encode+ ; headers +: encode-phandle ( name$ -- adr len ) + locate-device abort" encode-phandle - Can't find package" encode-int +;
\ From finddisp.fth purpose: @@ -2895,7 +2909,7 @@
also magic-device-types definitions : display ( -- ) - 'fb-node token@ origin = if current-device 'fb-node token! then + 'fb-node token@ origin = if current-device phandle>voc 'fb-node token! then ; previous definitions
@@ -2908,13 +2922,16 @@
\ Create the standard system nodes
+hex +\ debug devc root-device new-device \ Node for software "library" packages " packages" device-name
- new-device current-device to client-services + new-device current-device phandle>voc to client-services " client-services" device-name finish-device + finish-device
new-device \ Reports firmware run-time choices @@ -3248,7 +3265,7 @@ false value verbose-do-method?
: do-method? ( -- ) - method-name 2@ current-device (search-wordlist) if ( xt ) + method-name 2@ current-device phandle>voc (search-wordlist) if ( xt ) drop pwd$ ( path-adr,len ) verbose-do-method? if 2dup type cr then method-name 2@ execute-device-method drop cr ( ) @@ -3284,7 +3301,7 @@ ' (hold-message) to hold-message
: most-tests ( -- exit? ) - " selftest" current-device (search-wordlist) if ( xt ) + " selftest" current-device phandle>voc (search-wordlist) if ( xt )
drop ( )
@@ -3520,8 +3537,14 @@ : msize ( adr -- count ) dbuf-data> dbuf-size@ dbuf-data> ;
: >dbuf-header ( adr -- 'dbuf ) - dbuf-data> ( 'dbuf ) - dup dbuf-flag@ *dbuf-used* - abort" bad heap address." + dbuf-data> ( 'dbuf ) + dup dbuf-flag@ case ( 'dbuf ) + *dbuf-used* of endof ( 'dbuf ) + *dbuf-free* of + true abort" Freeing or resizing already-free memory" + endof + true abort" bad heap address." + endcase ( 'dbuf ) ; : free-memory ( adr -- ) >dbuf-header merge-down link-with-free @@ -4093,7 +4116,7 @@ ;
: setnode ( nodeid | 0 -- ) - dup 0= if drop ['] root-node then (push-package) + dup 0= if drop root-phandle then (push-package) ;
\ : copyout ( buf adr len -- len ) >r swap r@ cmove r> ; @@ -4192,24 +4215,25 @@ setnode ( ) 0 'child ( last-nodeid &next-nodeid ) begin get-token? while ( last-nodeid next-nodeid ) - nip dup (select-package) ( next-nodeid ) + nip dup voc>phandle (select-package) ( next-nodeid ) 'peer ( last-nodeid' &next-nodeid ) repeat ( last-nodeid' ) (pop-package) ( nodeid ) + dup if voc>phandle then ;
: peer ( phandle -- phandle' ) dup 0= if - drop ['] root-node exit + drop root-phandle exit then ( nodeid )
- dup ['] root-node = if + dup root-phandle = if drop 0 exit then ( nodeid )
\ Select the first child of our parent dup >parent (push-package) ( nodeid ) - 'child token@ (select-package) ( nodeid ) + 'child token@ voc>phandle (select-package) ( nodeid )
dup current-device = if ( nodeid ) \ Argument node is first child of parent; return "no more nodes" @@ -4217,7 +4241,7 @@ else ( nodeid ) \ Search for the node preceding the argument node begin ( nodeid ) - 'peer token@ 2dup <> ( nodeid next-nodeid flag ) + 'peer token@ voc>phandle 2dup <> ( nodeid next-nodeid flag ) while ( nodeid next-nodeid ) push-device ( nodeid ) repeat ( nodeid ) @@ -4227,7 +4251,7 @@ ;
: parent ( phandle -- phandle' ) - dup ['] root-node = if ( root-phandle ) + dup root-phandle = if ( root-phandle ) drop 0 exit ( 0 ) then ( parent-phandle ) >parent @@ -4429,7 +4453,7 @@ : (canon) ( path$ -- ) ?dup if ( path$ ) \ Establish the initial parent - null to current-device ( path$ ) + dt-null to current-device ( path$ ) ?expand-alias ( path$ ) begin canon-node dup 0= until ( path$' ) 2drop ( ) @@ -4802,7 +4826,7 @@ ; : resolve-ih-method ( adr len ihandle -- xt ) dup 0= if 3drop ['] not-colon exit then ( adr len ihandle ) - package( my-voc $find-word )package ?not-colon ( xt ) + package( my-voc phandle>voc $find-word )package ?not-colon ( xt ) ; : resolve-voc-method ( adr len voc -- xt ) (search-wordlist) ?not-colon @@ -4847,17 +4871,17 @@ then ( xt )
dup ['] package-execute = if ( [ adr len ] xt ) - drop 2dup current-device ( adr len voc ) + drop 2dup current-device ( adr len phandle ) resolve-ph-method exit ( -- xt ) then ( xt )
dup ['] apply-method = if ( [ adr len ] xt ) - drop 2dup my-voc ( adr len voc ) + drop 2dup my-voc phandle>voc ( adr len voc ) resolve-voc-method exit ( -- xt ) then ( xt )
dup ['] (apply-method) = if ( [ adr len ] xt ) - drop 2dup my-voc ( adr len voc ) + drop 2dup my-voc phandle>voc ( adr len voc ) resolve-voc-method exit ( -- xt ) then ( xt ) ;
Modified: ofw/inet/dhcp.fth ============================================================================== --- ofw/inet/dhcp.fth Fri Jun 29 22:32:59 2012 (r3020) +++ ofw/inet/dhcp.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -89,7 +89,7 @@ : .nak-message ( -- ) d# 56 find-option if -nulls type cr then ;
: root-property ( name$ -- true | value false ) - ['] root-node get-package-property + root-phandle get-package-property ;
\ Add a "vendor class" option if there is an "architecture" property @@ -520,7 +520,7 @@ \ we return the system architecture name in bootp-name-buf. bootp-name-buf count nip 0= if file-name-buf c@ 0= if - " architecture" ['] root-node get-package-property 0= if ( prop$ ) + " architecture" root-phandle get-package-property 0= if ( prop$ ) get-encoded-string ( name$ ) bootp-name-buf place ( ) then
Modified: ofw/inetv6/dhcp.fth ============================================================================== --- ofw/inetv6/dhcp.fth Fri Jun 29 22:32:59 2012 (r3020) +++ ofw/inetv6/dhcp.fth Fri Jun 29 22:46:30 2012 (r3021) @@ -89,7 +89,7 @@ : .nak-message ( -- ) d# 56 find-option if -nulls type cr then ;
: root-property ( name$ -- true | value false ) - ['] root-node get-package-property + root-phandle get-package-property ;
\ Add a "vendor class" option if there is an "architecture" property @@ -477,7 +477,7 @@ \ we return the system architecture name in bootp-name-buf. bootp-name-buf count nip 0= if file-name-buf c@ 0= if - " architecture" ['] root-node get-package-property 0= if ( prop$ ) + " architecture" root-phandle get-package-property 0= if ( prop$ ) get-encoded-string ( name$ ) bootp-name-buf place ( ) then
openfirmware@openfirmware.info