On 10/17/24 02:14, Ilya Leoshkevich wrote:
@@ -3312,10 +3358,26 @@ print_rt_sigprocmask(CPUArchState *cpu_env, const
struct syscallname *name,
case TARGET_SIG_SETMASK: how = "SIG_SETMASK"; break;
}
qemu_log("%s,", how);
- print_pointer(arg1, 0);
- print_pointer(arg2, 0);
+ print_target_sigset_t(arg1, arg3, 0);
+}
+
+static void
+print_rt_sigprocmask_ret(CPUArchState *cpu_env, const struct syscallname *name,
+ abi_long ret, abi_long arg0, abi_long arg1,
+ abi_long arg2, abi_long arg3, abi_long arg4,
+ abi_long arg5)
+{
+ if (is_error(ret)) {
+ print_pointer(arg2, 0);
+ } else {
+ print_target_sigset_t(arg2, arg3, 0);
+ }
print_raw_param("%u", arg3, 1);
print_syscall_epilogue(name);
I'm not keen on splitting operands across syscall completion.
There are a few existing syscalls for which we print such results afterward:
clock_gettime
clock_getres
wait4
waitpid
but we're certainly not consistent about it.
r~