aboutsummaryrefslogtreecommitdiff
path: root/arch/sh/include/asm/alignment.h
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-01-12 16:12:25 +0900
committerPaul Mundt <lethal@linux-sh.org>2010-01-12 16:12:25 +0900
commita99eae5417a09e0be66bf574a9a79a2a7388c967 (patch)
tree5024736c9afd76124e2f5f5424ecc153f6218c8e /arch/sh/include/asm/alignment.h
parent776258df925acd0563f471ee4b3f19bbffb3c04f (diff)
sh: Split out the unaligned counters and user bits.
This splits out the unaligned access counters and userspace bits in to their own generic interface, which will allow them to be wired up on sh64 too. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/asm/alignment.h')
-rw-r--r--arch/sh/include/asm/alignment.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/sh/include/asm/alignment.h b/arch/sh/include/asm/alignment.h
new file mode 100644
index 00000000000..b12efecf529
--- /dev/null
+++ b/arch/sh/include/asm/alignment.h
@@ -0,0 +1,21 @@
+#ifndef __ASM_SH_ALIGNMENT_H
+#define __ASM_SH_ALIGNMENT_H
+
+#include <linux/types.h>
+
+extern void inc_unaligned_byte_access(void);
+extern void inc_unaligned_word_access(void);
+extern void inc_unaligned_dword_access(void);
+extern void inc_unaligned_multi_access(void);
+extern void inc_unaligned_user_access(void);
+extern void inc_unaligned_kernel_access(void);
+
+#define UM_WARN (1 << 0)
+#define UM_FIXUP (1 << 1)
+#define UM_SIGNAL (1 << 2)
+
+extern unsigned int unaligned_user_action(void);
+
+extern void unaligned_fixups_notify(struct task_struct *, insn_size_t, struct pt_regs *);
+
+#endif /* __ASM_SH_ALIGNMENT_H */