On Mon, Nov 26, 2012 at 12:13 AM, Mark Cave-Ayland mark.cave-ayland@ilande.co.uk wrote:
Rather than simply copy the value of input-device, we scan the device tree for an entry with a device_type of keyboard and use that. This ensures that the keyboard alias always points to a physical keyboard device.
Maybe I'm missing something, but other keyboard drivers (escc.c and pc_kbd.c) just add the keyboard alias themselves, this should be slightly faster because the scan is avoided. It's also only two lines of code.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
openbios-devel/arch/ppc/qemu/qemu.fs | 36 +++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-)
diff --git a/openbios-devel/arch/ppc/qemu/qemu.fs b/openbios-devel/arch/ppc/qemu/qemu.fs index 0d691f7..29c4cf6 100644 --- a/openbios-devel/arch/ppc/qemu/qemu.fs +++ b/openbios-devel/arch/ppc/qemu/qemu.fs @@ -46,12 +46,38 @@ then ;
-\ set the keyboard alias to stdin +variable keyboard-phandle 0 keyboard-phandle !
+: (find-keyboard-device) ( phandle -- )
- recursive
dn.child @- begin ?dup while
- dup dup " device_type" rot get-package-property 0= if
drop dup cstrlen
" keyboard" strcmp 0= if
dup to keyboard-phandle
then
- then
- (find-keyboard-device)
dn.peer @- repeat
+;
+\ create the keyboard devalias :noname
- active-package
- " /aliases" find-device
- input-device encode-string " keyboard" property
- active-package!
- device-tree @ (find-keyboard-device)
- keyboard-phandle @ if
- active-package
- " /aliases" find-device
- keyboard-phandle @ get-nodename
- \ dictionary abused for temporary storage
- here >r
- " /" r@ 200 + tmpstrcat drop
- keyboard-phandle @ >dn.parent @ get-package-path
- r@ 240 + tmpstrcat r> 2drop
- encode-string " keyboard" property
- active-package!
- then
; SYSTEM-initializer
\ -------------------------------------------------------------------------
1.7.10.4
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you