aboutsummaryrefslogtreecommitdiffstats
path: root/include/spl-thread.h
diff options
context:
space:
mode:
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>2008-02-28 00:48:31 +0000
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>2008-02-28 00:48:31 +0000
commit596e65b4e8e98e46705cb470deb72dbf8702b8c2 (patch)
tree10b03edbf6439f138d2e2a22da8e7b5ffcb25546 /include/spl-thread.h
parent07d339d467337b07ff078d4f2bb81c00388c7565 (diff)
OK, I think this is the last of major cleanup and restructuring.
We've dropped all the linux- prefixes on the file in favor of spl- which makes more sense. And we've cleaned up some of the includes so everybody should be including their own dependencies properly. All a module which wants to use the spl support needs to do in include spl.h and ensure it has access to Module.symvers. git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@16 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'include/spl-thread.h')
-rw-r--r--include/spl-thread.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/spl-thread.h b/include/spl-thread.h
new file mode 100644
index 000000000..567d397e1
--- /dev/null
+++ b/include/spl-thread.h
@@ -0,0 +1,50 @@
+#ifndef _SOLARIS_THREAD_H
+#define _SOLARIS_THREAD_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <linux/module.h>
+#include <linux/mm.h>
+#include <linux/spinlock.h>
+#include "spl-types.h"
+#include "spl-generic.h"
+
+/*
+ * Thread interfaces
+ */
+#define TP_MAGIC 0x53535353
+
+#define TS_SLEEP TASK_INTERRUPTIBLE
+#define TS_RUN TASK_RUNNING
+#define TS_ZOMB EXIT_ZOMBIE
+#define TS_STOPPED TASK_STOPPED
+#if 0
+#define TS_FREE 0x00 /* No clean linux mapping */
+#define TS_ONPROC 0x04 /* No clean linux mapping */
+#define TS_WAIT 0x20 /* No clean linux mapping */
+#endif
+
+#define thread_create(stk, stksize, func, arg, len, pp, state, pri) \
+ __thread_create(stk, stksize, func, arg, len, pp, state, pri)
+#define thread_exit() __thread_exit()
+#define curthread get_current()
+
+/* We just need a valid type to pass around, it's unused */
+typedef struct proc_s {
+ int foo;
+} proc_t;
+
+extern kthread_t *__thread_create(caddr_t stk, size_t stksize,
+ void (*proc)(void *), void *args,
+ size_t len, proc_t *pp, int state,
+ pri_t pri);
+extern void __thread_exit(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SOLARIS_THREAD_H */
+