From: Pierrick Bouvier Date: Thu, 29 Jan 2026 05:41:53 +0000 (-0800) Subject: linux-user: move user/syscall-trace.h to linux-user/syscall.c X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d37ce14f98b04c5017e74cd8b32776adb878b633;p=thirdparty%2Fqemu.git linux-user: move user/syscall-trace.h to linux-user/syscall.c For now, only linux-user supports plugin syscall API, so restrict the scope of these functions to linux-user/syscall.c Reviewed-by: Richard Henderson Link: https://lore.kernel.org/qemu-devel/20260129013134.3956938-7-pierrick.bouvier@linaro.org Signed-off-by: Pierrick Bouvier --- diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index ca2f6fdb66..4c1191b8f4 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -31,7 +31,6 @@ #include "qemu.h" #include "signal-common.h" -#include "user/syscall-trace.h" /* BSD independent syscall shims */ #include "bsd-file.h" diff --git a/include/user/syscall-trace.h b/include/user/syscall-trace.h deleted file mode 100644 index 9bd7ca19c8..0000000000 --- a/include/user/syscall-trace.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Common System Call Tracing Wrappers for *-user - * - * Copyright (c) 2019 Linaro - * Written by Alex Bennée - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#ifndef SYSCALL_TRACE_H -#define SYSCALL_TRACE_H - -#include "user/abitypes.h" -#include "gdbstub/user.h" -#include "qemu/plugin.h" -#include "trace/trace-root.h" - -/* - * These helpers just provide a common place for the various - * subsystems that want to track syscalls to put their hooks in. We - * could potentially unify the -strace code here as well. - */ - -static inline void record_syscall_start(CPUState *cpu, int num, - abi_long arg1, abi_long arg2, - abi_long arg3, abi_long arg4, - abi_long arg5, abi_long arg6, - abi_long arg7, abi_long arg8) -{ - qemu_plugin_vcpu_syscall(cpu, num, - arg1, arg2, arg3, arg4, - arg5, arg6, arg7, arg8); - gdb_syscall_entry(cpu, num); -} - -static inline void record_syscall_return(CPUState *cpu, int num, abi_long ret) -{ - qemu_plugin_vcpu_syscall_ret(cpu, num, ret); - gdb_syscall_return(cpu, num); -} - - -#endif /* SYSCALL_TRACE_H */ diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 3944004568..b4b551ad14 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -132,6 +132,7 @@ #include "uname.h" #include "qemu.h" +#include "gdbstub/user.h" #include "user-internals.h" #include "strace.h" #include "signal-common.h" @@ -142,7 +143,6 @@ #include "user/signal.h" #include "qemu/guest-random.h" #include "qemu/selfmap.h" -#include "user/syscall-trace.h" #include "special-errno.h" #include "qapi/error.h" #include "fd-trans.h" @@ -14334,6 +14334,24 @@ static bool sys_dispatch(CPUState *cpu, TaskState *ts) return true; } +static void record_syscall_start(CPUState *cpu, int num, + abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4, + abi_long arg5, abi_long arg6, + abi_long arg7, abi_long arg8) +{ + qemu_plugin_vcpu_syscall(cpu, num, + arg1, arg2, arg3, arg4, + arg5, arg6, arg7, arg8); + gdb_syscall_entry(cpu, num); +} + +static void record_syscall_return(CPUState *cpu, int num, abi_long ret) +{ + qemu_plugin_vcpu_syscall_ret(cpu, num, ret); + gdb_syscall_return(cpu, num); +} + abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6, abi_long arg7,