diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2024-02-22 15:46:43 -1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2024-03-01 08:05:59 -1000 |
commit | 9f7c97324c273015812fe93b85d000335d6fa7c4 (patch) | |
tree | 880c3cdf458e29122e66358f600fe9b3e5d6837a | |
parent | 01a721167a117403c83b947966be1a91ef4dcfba (diff) | |
download | qemu-9f7c97324c273015812fe93b85d000335d6fa7c4.zip qemu-9f7c97324c273015812fe93b85d000335d6fa7c4.tar.gz qemu-9f7c97324c273015812fe93b85d000335d6fa7c4.tar.bz2 |
linux-user: Add strace for shmat
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r-- | linux-user/strace.c | 24 | ||||
-rw-r--r-- | linux-user/strace.list | 2 |
2 files changed, 25 insertions, 1 deletions
diff --git a/linux-user/strace.c b/linux-user/strace.c index cf26e55..8d13e55 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -670,6 +670,26 @@ print_semctl(CPUArchState *cpu_env, const struct syscallname *name, } #endif +static void +print_shmat(CPUArchState *cpu_env, const struct syscallname *name, + abi_long arg0, abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4, abi_long arg5) +{ + static const struct flags shmat_flags[] = { + FLAG_GENERIC(SHM_RND), + FLAG_GENERIC(SHM_REMAP), + FLAG_GENERIC(SHM_RDONLY), + FLAG_GENERIC(SHM_EXEC), + FLAG_END + }; + + print_syscall_prologue(name); + print_raw_param(TARGET_ABI_FMT_ld, arg0, 0); + print_pointer(arg1, 0); + print_flags(shmat_flags, arg2, 1); + print_syscall_epilogue(name); +} + #ifdef TARGET_NR_ipc static void print_ipc(CPUArchState *cpu_env, const struct syscallname *name, @@ -683,6 +703,10 @@ print_ipc(CPUArchState *cpu_env, const struct syscallname *name, print_ipc_cmd(arg3); qemu_log(",0x" TARGET_ABI_FMT_lx ")", arg4); break; + case IPCOP_shmat: + print_shmat(cpu_env, &(const struct syscallname){ .name = "shmat" }, + arg1, arg4, arg2, 0, 0, 0); + break; default: qemu_log(("%s(" TARGET_ABI_FMT_ld "," diff --git a/linux-user/strace.list b/linux-user/strace.list index 6655d4f..dfd4237 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -1398,7 +1398,7 @@ { TARGET_NR_sgetmask, "sgetmask" , NULL, NULL, NULL }, #endif #ifdef TARGET_NR_shmat -{ TARGET_NR_shmat, "shmat" , NULL, NULL, print_syscall_ret_addr }, +{ TARGET_NR_shmat, "shmat" , NULL, print_shmat, print_syscall_ret_addr }, #endif #ifdef TARGET_NR_shmctl { TARGET_NR_shmctl, "shmctl" , NULL, NULL, NULL }, |