: pci-gen-irq-map-one ( prop-addr prop-len slot pin -- prop-addr prop-len ) 2dup + 4 mod ( prop-addr prop-len slot pin parentpin ) >r >r ( prop-addr prop-len slot R: swizzledpin pin ) \ Child slot# B lshift encode-int+ ( prop-addr prop-len R: swizzledpin pin ) \ Child 64bit BAR (not really used) 0 encode-64+ \ Chile pin# r> encode-int+ ( prop-addr prop-len R: swizzledpin ) \ Parent phandle get-parent encode-int+ \ Parent slot# get-node >space pci-addr2dev B lshift ( prop-addr prop-len parent-slot R: swizzledpin ) encode-int+ \ Parent 64bit BAR (not really used) 0 encode-64+ \ Parent pin r> encode-int+ ( prop-addr prop-len R: ) ; : pci-gen-irq-entry ( prop-addr prop-len config-addr -- prop-addr prop-len ) pci-addr2dev 4 mod ( prop-addr prop-len slot ) -rot ( slot prop-addr prop-len ) 5 1 DO 2 pick i ( slot prop-addr prop-len slot pin ) pci-gen-irq-map-one LOOP rot drop ; : pci-set-irq-line ( config-addr -- ) drop ;