Annotation of qemu/roms/openbios/arch/ppc/mol/mol.fs, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: \ -------------------------------------------------------------------------
                      4: \ initialization
                      5: \ -------------------------------------------------------------------------
                      6: 
                      7: : make-openable ( path )
                      8:   find-dev if
                      9:     begin ?dup while
                     10:       \ install trivial open and close methods
                     11:       dup active-package! is-open
                     12:       parent
                     13:     repeat
                     14:   then
                     15: ;
                     16: 
                     17: : preopen ( chosen-str node-path )
                     18:   2dup make-openable
                     19:   
                     20:   " /chosen" find-device
                     21:   open-dev ?dup if
                     22:     encode-int 2swap property
                     23:   else
                     24:     2drop
                     25:   then
                     26: ;
                     27: 
                     28: \ preopen device nodes (and store the ihandles under /chosen)
                     29: :noname
                     30:   " memory" " /memory" preopen
                     31:   " mmu" " /cpus/@0" preopen
                     32:   " stdout" " /packages/mol-stdout" preopen
                     33:   " stdin" " keyboard" preopen
                     34:   " nvram" " /pci/pci-bridge/mac-io/nvram" preopen
                     35:   " nvram" " /mol/nvram" preopen
                     36: 
                     37: ; SYSTEM-initializer
                     38: 
                     39: 
                     40: \ -------------------------------------------------------------------------
                     41: \ device tree fixing
                     42: \ -------------------------------------------------------------------------
                     43: 
                     44: \ add decode-address methods
                     45: : (make-decodable) ( phandle -- )
                     46: 
                     47:     dup " #address-cells" rot get-package-property 0= if
                     48:       decode-int nip nip
                     49:       over " decode-unit" rot find-method if 2drop else
                     50:         ( save phandle ncells )
                     51:       
                     52:         over active-package!
                     53:         case
                     54:           1 of ['] parse-hex " decode-unit" is-xt-func endof
                     55:           3 of
                     56:             " bus-range" active-package get-package-property 0= if
                     57:               decode-int nip nip
                     58:               ['] encode-unit-pci " encode-unit" is-xt-func
                     59:               " decode-unit" is-func-begin
                     60:                 ['] (lit) , ,
                     61:                 ['] decode-unit-pci-bus ,
                     62:               is-func-end
                     63:             then
                     64:           endof
                     65:         endcase
                     66:       then
                     67:     then
                     68:     drop
                     69: ;
                     70:     
                     71: : tree-fixes ( -- )
                     72:   active-package
                     73:   
                     74:   iterate-tree-begin
                     75:   begin ?dup while
                     76: 
                     77:     dup (make-decodable)
                     78:     
                     79:     iterate-tree
                     80:   repeat
                     81: 
                     82:   active-package!
                     83: ;
                     84: 
                     85: \ use the tty interface if available
                     86: : activate-tty-interface
                     87:   " /mol/mol-tty" find-dev if drop
                     88:     " /mol/mol-tty" " input-device" $setenv
                     89:     " /mol/mol-tty" " output-device" $setenv
                     90:   then
                     91: ;
                     92: 
                     93: :noname
                     94:   " keyboard" input
                     95: ; CONSOLE-IN-initializer
                     96: 
                     97: 
                     98: \ -------------------------------------------------------------------------
                     99: \ pre-booting
                    100: \ -------------------------------------------------------------------------
                    101: 
                    102: : update-chosen
                    103:   " /chosen" find-device
                    104:   stdin @ encode-int " stdin" property
                    105:   stdout @ encode-int " stdout" property
                    106:   device-end
                    107: ;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.