[OpenBIOS] r609 - in trunk/openbios-devel: forth/system modules
svn at openbios.org
svn at openbios.org
Thu Nov 12 02:11:04 CET 2009
Author: laurent
Date: 2009-11-12 02:11:04 +0100 (Thu, 12 Nov 2009)
New Revision: 609
Modified:
trunk/openbios-devel/forth/system/ciface.fs
trunk/openbios-devel/modules/client.c
Log:
Implement Client Interface method "test-method" defined in
"PowerPC Microprocessor CHRP binding", Chapter 10.5.2.
Signed-off-by: Laurent Vivier <Laurent at vivier.eu>
Modified: trunk/openbios-devel/forth/system/ciface.fs
===================================================================
--- trunk/openbios-devel/forth/system/ciface.fs 2009-11-12 00:57:32 UTC (rev 608)
+++ trunk/openbios-devel/forth/system/ciface.fs 2009-11-12 01:11:04 UTC (rev 609)
@@ -303,6 +303,18 @@
outer-interpreter
;
+[IFDEF] CONFIG_PPC
+\ PowerPC Microprocessor CHRP binding
+\ 10.5.2. Client Interface
+
+( phandle cstring-method -- missing )
+
+: test-method
+ dup cstrlen rot
+ find-method 0= if -1 else drop 0 then
+;
+[THEN]
+
finish-device
device-end
Modified: trunk/openbios-devel/modules/client.c
===================================================================
--- trunk/openbios-devel/modules/client.c 2009-11-12 00:57:32 UTC (rev 608)
+++ trunk/openbios-devel/modules/client.c 2009-11-12 01:11:04 UTC (rev 609)
@@ -19,7 +19,7 @@
#include "openbios/of.h"
/* Uncomment to enable debug printout of client interface calls */
-//#define DEBUG_CIF
+#define DEBUG_CIF
//#define DUMP_IO
/* OF client interface. r3 points to the argument array. On return,
@@ -143,6 +143,9 @@
printk("enter()\n");
} else if (strcmp(pb->service, "exit") == 0) {
printk("exit()\n");
+ } else if (strcmp(pb->service, "test-method") == 0) {
+ printk("test-method(0x%08lx, \"%s\") = ",
+ pb->args[0], (char*)pb->args[1]);
} else {
printk("of_client_interface: %s ", pb->service );
for( i = 0; i < pb->nargs; i++ )
@@ -212,6 +215,8 @@
/* do nothing */
} else if (strcmp(pb->service, "exit") == 0) {
/* do nothing */
+ } else if (strcmp(pb->service, "test-method") == 0) {
+ printk("0x%08lx\n", pb->args[pb->nargs]);
} else {
printk("of_client_interface return:");
for (i = 0; i < pb->nret; i++) {
More information about the OpenBIOS
mailing list