aboutsummaryrefslogtreecommitdiff
path: root/arch/mn10300/include/asm/current.h
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2009-04-10 14:19:03 +0100
committerDavid Howells <dhowells@redhat.com>2009-04-10 14:19:03 +0100
commitda7616610c8d2ec16a8ada44216e836e5fcbd08b (patch)
treeef3e8ccc7a01694c0ab0eeea387bc46a8807669e /arch/mn10300/include/asm/current.h
parent62b8e680e61d3f48f2a12ee248ca03ea8f376926 (diff)
Move arch headers from include/asm-mn10300/ to arch/mn10300/include/asm/.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'arch/mn10300/include/asm/current.h')
-rw-r--r--arch/mn10300/include/asm/current.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/mn10300/include/asm/current.h b/arch/mn10300/include/asm/current.h
new file mode 100644
index 00000000000..ca6027d8374
--- /dev/null
+++ b/arch/mn10300/include/asm/current.h
@@ -0,0 +1,37 @@
+/* MN10300 Current task structure accessor
+ *
+ * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public Licence
+ * as published by the Free Software Foundation; either version
+ * 2 of the Licence, or (at your option) any later version.
+ */
+#ifndef _ASM_CURRENT_H
+#define _ASM_CURRENT_H
+
+#include <linux/thread_info.h>
+
+/*
+ * dedicate E2 to keeping the current task pointer
+ */
+#ifdef CONFIG_MN10300_CURRENT_IN_E2
+
+register struct task_struct *const current asm("e2") __attribute__((used));
+
+#define get_current() current
+
+extern struct task_struct *__current;
+
+#else
+static inline __attribute__((const))
+struct task_struct *get_current(void)
+{
+ return current_thread_info()->task;
+}
+
+#define current get_current()
+#endif
+
+#endif /* _ASM_CURRENT_H */