On 3/14/22 14:51, Khem Raj wrote:
+static inline uintptr_t host_signal_pc(host_sigcontext *uc)
+{
+    return uc->uc_mcontext.gp_regs[32];
+}
+
+static inline void host_signal_set_pc(host_sigcontext *uc, uintptr_t pc)
+{
+    uc->uc_mcontext.gp_regs[32] = pc;
+}
+
+static inline void *host_signal_mask(host_sigcontext *uc)
+{
+    return &uc->uc_sigmask;
+}
+
+static inline bool host_signal_write(siginfo_t *info, host_sigcontext *uc)
+{
+    return uc->uc_mcontext.gp_regs[40] != 0x400
+        && (uc->uc_mcontext.gp_regs[42] & 0x02000000);
+}

Oh, dear.

I didn't realize that the symbolic constants are also in <asm/ptrace.h>. We really don't want magic numbers. We'll have to have the include and use PT_NIP, PT_TRAP, PT_DSISR.


r~

Reply via email to