public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* calling oem sal functions
@ 2004-08-19 17:23 Tony Luck
  2004-08-19 17:29 ` Christoph Hellwig
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Tony Luck @ 2004-08-19 17:23 UTC (permalink / raw)
  To: linux-ia64

[-- Attachment #1: Type: text/plain, Size: 484 bytes --]

Dean,

I've been thinking about this, and it does seem unresonable that there
is no way for an OEM written module to make a call to an OEM SAL function.

Would something like the (compiles, but untested) attached patch work
for you?  The return value of 0/-1 just indicates whether the SAL call
was attempted.  Callers should look at the status field of the isrvp
structure to determine the actual success of the call.

Would you also need "_nolock" and "_reentrant" versions?

-Tony

[-- Attachment #2: oemsal.patch --]
[-- Type: text/plain, Size: 711 bytes --]

===== arch/ia64/kernel/sal.c 1.11 vs edited =====
--- 1.11/arch/ia64/kernel/sal.c	2004-07-09 00:11:46 +00:00
+++ edited/arch/ia64/kernel/sal.c	2004-08-19 17:02:07 +00:00
@@ -10,6 +10,7 @@
 
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/string.h>
 
@@ -262,3 +263,15 @@
 		p += SAL_DESC_SIZE(*p);
 	}
 }
+
+int
+oem_sal_call(struct ia64_sal_retval *isrvp, u64 oemfunc, u64 arg1, u64 arg2,
+	     u64 arg3, u64 arg4, u64 arg5, u64 arg6, u64 arg7)
+{
+	if (oemfunc < 0x02000000 || oemfunc > 0x03ffffff)
+		return -1;
+	SAL_CALL(*isrvp, oemfunc, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+	return 0;
+}
+
+EXPORT_SYMBOL(oem_sal_call);

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-08-19 22:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-19 17:23 calling oem sal functions Tony Luck
2004-08-19 17:29 ` Christoph Hellwig
2004-08-19 18:18 ` Robin Holt
2004-08-19 18:21 ` Christoph Hellwig
2004-08-19 18:29 ` Dean Nelson
2004-08-19 18:48 ` Jack Steiner
2004-08-19 19:48 ` Robin Holt
2004-08-19 22:14 ` John Lee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox