aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64/include/undefined.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm64/include/undefined.h')
-rw-r--r--sys/arm64/include/undefined.h30
1 files changed, 8 insertions, 22 deletions
diff --git a/sys/arm64/include/undefined.h b/sys/arm64/include/undefined.h
index db5d0523e711..71b2eed22a84 100644
--- a/sys/arm64/include/undefined.h
+++ b/sys/arm64/include/undefined.h
@@ -35,31 +35,17 @@
typedef int (*undef_handler_t)(vm_offset_t, uint32_t, struct trapframe *,
uint32_t);
-
-static inline int
-mrs_Op0(uint32_t insn)
-{
-
- /* op0 is encoded without the top bit in a mrs instruction */
- return (2 | ((insn & MRS_Op0_MASK) >> MRS_Op0_SHIFT));
-}
-
-#define MRS_GET(op) \
-static inline int \
-mrs_##op(uint32_t insn) \
-{ \
- \
- return ((insn & MRS_##op##_MASK) >> MRS_##op##_SHIFT); \
-}
-MRS_GET(Op1)
-MRS_GET(CRn)
-MRS_GET(CRm)
-MRS_GET(Op2)
+typedef bool (*undef_sys_handler_t)(uint64_t, struct trapframe *);
void undef_init(void);
-void *install_undef_handler(bool, undef_handler_t);
+void install_sys_handler(undef_sys_handler_t);
+void *install_undef_handler(undef_handler_t);
+#ifdef COMPAT_FREEBSD32
+void *install_undef32_handler(undef_handler_t);
+#endif
void remove_undef_handler(void *);
-int undef_insn(u_int, struct trapframe *);
+bool undef_sys(uint64_t, struct trapframe *);
+int undef_insn(struct trapframe *);
#endif /* _KERNEL */