diff options
Diffstat (limited to 'sys/arm64/include/undefined.h')
-rw-r--r-- | sys/arm64/include/undefined.h | 30 |
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 */ |