Annotation of qemu/roms/SLOF/slof/fs/usb/usb-kbd-device-support.fs, revision 1.1.1.1

1.1       root        1: \ *****************************************************************************
                      2: \ * Copyright (c) 2004, 2008 IBM Corporation
                      3: \ * All rights reserved.
                      4: \ * This program and the accompanying materials
                      5: \ * are made available under the terms of the BSD License
                      6: \ * which accompanies this distribution, and is available at
                      7: \ * http://www.opensource.org/licenses/bsd-license.php
                      8: \ *
                      9: \ * Contributors:
                     10: \ *     IBM Corporation - initial implementation
                     11: \ ****************************************************************************/
                     12: 
                     13: 
                     14: 00 value kbd-addr
                     15: to kbd-addr
                     16: 8 alloc-mem to kbd-report
                     17: 4 chars alloc-mem value kbd-data
                     18: 
                     19: : rw-endpoint
                     20:   s" rw-endpoint" $call-parent ;
                     21: 
                     22: : controlxfer
                     23:   s" controlxfer" $call-parent ;
                     24: 
                     25: : control-std-get-device-descriptor
                     26:   s" control-std-get-device-descriptor" $call-parent ;
                     27: 
                     28: : control-std-get-configuration-descriptor
                     29:   s" control-std-get-configuration-descriptor" $call-parent ;
                     30: 
                     31: : control-std-set-configuration
                     32:   s" control-std-set-configuration" $call-parent ;
                     33: 
                     34: : control-cls-set-protocol ( reportvalue FuncAddr -- TRUE|FALSE )
                     35:   to temp1
                     36:   to temp2
                     37:   210b000000000100 setup-packet ! 
                     38:   temp2 kbd-data l!-le
                     39:   1 kbd-data 1 setup-packet DEFAULT-CONTROL-MPS temp1 controlxfer  
                     40: ;
                     41: 
                     42: : control-cls-set-idle ( reportvalue FuncAddr -- TRUE|FALSE )
                     43:   to temp1
                     44:   to temp2
                     45:   210a000000000000 setup-packet ! 
                     46:   temp2 kbd-data l!-le
                     47:   0 kbd-data 0 setup-packet DEFAULT-CONTROL-MPS temp1 controlxfer  
                     48: ;
                     49: 
                     50: : control-std-get-report-descriptor ( data-buffer data-len MPS FuncAddr -- TRUE|FALSE )
                     51:   to temp1
                     52:   to temp2
                     53:   to temp3
                     54:   8106002200000000 setup-packet ! 
                     55:   temp3 setup-packet 6 + w!-le
                     56:   0 swap temp3 setup-packet temp2 temp1 controlxfer  
                     57: ;
                     58: 
                     59: : kbd-init
                     60:     s" Starting to initialize keyboard" usb-debug-print
                     61:     s" MPS-INTIN" get-my-property
                     62:     if
                     63:        s" not possible" usb-debug-print
                     64:     else
                     65:        decode-int nip nip to mps-int-in
                     66:     then
                     67:     s" INT-IN-EP-ADDR" get-my-property
                     68:     if
                     69:        s" not possible" usb-debug-print
                     70:     else
                     71:        decode-int nip nip to int-in-ep
                     72:     then
                     73: 
                     74:   7f alloc-mem to cfg-buffer
                     75:   s" Allocated buffers!!" usb-debug-print
                     76: 
                     77:   cfg-buffer 12 8 kbd-addr                   \ get device descriptor
                     78:   control-std-get-device-descriptor
                     79:   drop
                     80:   \ s" dev_desc=" type cfg-buffer 12 dump cr
                     81: 
                     82:   cfg-buffer 9 8 kbd-addr                    \ get config descriptor  
                     83:   control-std-get-configuration-descriptor
                     84:   drop
                     85:   \ s" cfg_desc=" type cfg-buffer 9 dump cr
                     86: 
                     87:   cfg-buffer 5 + c@ kbd-addr                 \ set configuration  
                     88:   control-std-set-configuration
                     89:   drop
                     90:   s" KBDS: Set config returned" usb-debug-print 
                     91: 
                     92:   0 kbd-addr control-cls-set-idle drop       \ set idle  
                     93:   s" KBDS: Set idle returned" usb-debug-print
                     94: 
                     95:   cfg-buffer 40 8 kbd-addr                   \ get report descriptor
                     96:   control-std-get-report-descriptor
                     97:   drop
                     98:   \ s" report_desc=" type cfg-buffer 40 dump cr
                     99: 
                    100:   s" Finished initializing keyboard" usb-debug-print 
                    101: ;
                    102: 

unix.superglobalmegacorp.com

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