📄 extra.fs
字号:
\ tag: Useful device related functions\ \ Copyright (C) 2003, 2004 Samuel Rydh\ \ See the file "COPYING" for further information about\ the copyright and warranty status of this work.\ : parent ( phandle -- parent.phandle|0 ) >dn.parent @;\ -------------------------------------------------------------------\ property helpers\ -------------------------------------------------------------------: int-property ( value name-str name-len -- ) rot encode-int 2swap property;\ -------------------------------------------------------------------------\ property utils\ -------------------------------------------------------------------------\ like property (except it takes a phandle as an argument): encode-property ( buf len propname propname-len phandle -- ) dup 0= abort" null phandle" my-self >r 0 to my-self active-package >r active-package! property r> active-package! r> to my-self;\ -------------------------------------------------------------------\ device tree iteration\ -------------------------------------------------------------------: iterate-tree ( phandle -- phandle|0 ) ?dup 0= if device-tree @ exit then \ children first dup child if child exit then \ then peers dup peer if peer exit then \ then peer of a parent begin >dn.parent @ dup while dup peer if peer exit then repeat;: iterate-tree-begin ( -- first_node ) device-tree @;\ -------------------------------------------------------------------\ device tree iteration\ -------------------------------------------------------------------: iterate-device-type ( lastph|0 type-str type-len -- 0|nextph ) rot begin iterate-tree ?dup while >r 2dup " device_type" r@ get-package-property if 0 0 then dup 0> if 1- then strcmp 0= if 2drop r> exit then r> repeat 2drop 0;\ -------------------------------------------------------------------\ device tree "cut and paste"\ -------------------------------------------------------------------\ add a subtree to the current device node: link-nodes ( phandle -- ) \ reparent phandle and peers dup begin ?dup while dup >dn.parent active-package ! >dn.peer @ repeat \ add to list of children active-package >dn.child begin dup @ while @ >dn.peer repeat dup . !;: link-node ( phandle -- ) 0 over >dn.peer ! link-nodes;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -