summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/forth/admin/selftest.fs
diff options
context:
space:
mode:
authorYang Zhang <yang.z.zhang@intel.com>2015-08-28 09:58:54 +0800
committerYang Zhang <yang.z.zhang@intel.com>2015-09-01 12:44:00 +0800
commite44e3482bdb4d0ebde2d8b41830ac2cdb07948fb (patch)
tree66b09f592c55df2878107a468a91d21506104d3f /qemu/roms/openbios/forth/admin/selftest.fs
parent9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 (diff)
Add qemu 2.4.0
Change-Id: Ic99cbad4b61f8b127b7dc74d04576c0bcbaaf4f5 Signed-off-by: Yang Zhang <yang.z.zhang@intel.com>
Diffstat (limited to 'qemu/roms/openbios/forth/admin/selftest.fs')
-rw-r--r--qemu/roms/openbios/forth/admin/selftest.fs49
1 files changed, 49 insertions, 0 deletions
diff --git a/qemu/roms/openbios/forth/admin/selftest.fs b/qemu/roms/openbios/forth/admin/selftest.fs
new file mode 100644
index 000000000..20c0c963b
--- /dev/null
+++ b/qemu/roms/openbios/forth/admin/selftest.fs
@@ -0,0 +1,49 @@
+\ tag: self-test
+\
+\ this code implements IEEE 1275-1994 ch. 7.4.8
+\
+\ Copyright (C) 2003 Stefan Reinauer
+\
+\ See the file "COPYING" for further information about
+\ the copyright and warranty status of this work.
+\
+
+\
+\ 7.4.8 Self-test
+\
+
+: $test ( devname-addr devname-len -- )
+ 2dup ." Testing device " type ." : "
+ find-dev if
+ s" self-test" rot find-method if
+ execute
+ else
+ ." no self-test method."
+ then
+ else
+ ." no such device."
+ then
+ cr
+;
+
+: test ( "device-specifier<cr>"-- )
+ linefeed parse cr $test
+ ;
+
+: test-sub-devs
+ >dn.child @
+ begin dup while
+ dup get-package-path $test
+ dup recurse
+ >dn.peer @
+ repeat
+ drop
+;
+
+: test-all ( "{device-specifier}<cr>" -- )
+ active-package
+ cr " /" find-device
+ linefeed parse find-device
+ ?active-package test-sub-devs
+ active-package!
+ ;