summaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/traps_64.h
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2012-05-14 06:04:08 +0200
committerPaul Mundt <lethal@linux-sh.org>2012-05-14 06:04:08 +0200
commitf007688a50cf5724049a4a5f17023fcdb0966b54 (patch)
treeea073ce3675a1ebd56699381f5cac75d263abf88 /arch/sh/include/asm/traps_64.h
parentsh: Tidy up and generalize page fault error paths. (diff)
downloadlinux-f007688a50cf5724049a4a5f17023fcdb0966b54.tar.xz
linux-f007688a50cf5724049a4a5f17023fcdb0966b54.zip
sh64: Provide EXPEVT helper.
We need a lookup_exception_vector() helper for sh64 in order to use the common page fault code. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/asm/traps_64.h')
-rw-r--r--arch/sh/include/asm/traps_64.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/sh/include/asm/traps_64.h b/arch/sh/include/asm/traps_64.h
index c52d7f9a06c1..ef5eff919449 100644
--- a/arch/sh/include/asm/traps_64.h
+++ b/arch/sh/include/asm/traps_64.h
@@ -10,8 +10,22 @@
#ifndef __ASM_SH_TRAPS_64_H
#define __ASM_SH_TRAPS_64_H
+#include <cpu/registers.h>
+
extern void phys_stext(void);
+#define lookup_exception_vector() \
+({ \
+ unsigned long _vec; \
+ \
+ __asm__ __volatile__ ( \
+ "getcon " __EXPEVT ", %0\n\t" \
+ : "=r" (_vec) \
+ ); \
+ \
+ _vec; \
+})
+
static inline void trigger_address_error(void)
{
phys_stext();