2009-04-07 15:57:29 +02:00
|
|
|
/*
|
|
|
|
* Note that if you change format strings in these, check also
|
|
|
|
* that corresponding print functions are able to handle string
|
|
|
|
* locking correctly (see strace.c).
|
|
|
|
*/
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_accept
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_accept, "accept" , NULL, print_accept, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_accept4
|
|
|
|
{ TARGET_NR_accept4, "accept4" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_access
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_access, "access" , NULL, print_access, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_acct
|
2020-06-19 14:33:27 +02:00
|
|
|
{ TARGET_NR_acct, "acct" , NULL, print_acct, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_add_key
|
|
|
|
{ TARGET_NR_add_key, "add_key" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_adjtimex
|
2016-09-22 18:56:50 +02:00
|
|
|
{ TARGET_NR_adjtimex, "adjtimex" , "%s(%p)", NULL,
|
|
|
|
print_syscall_ret_adjtimex },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_afs_syscall
|
|
|
|
{ TARGET_NR_afs_syscall, "afs_syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_alarm
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_alarm, "alarm" , "%s(%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_aplib
|
|
|
|
{ TARGET_NR_aplib, "aplib" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_arch_prctl
|
|
|
|
{ TARGET_NR_arch_prctl, "arch_prctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_arm_fadvise64_64
|
|
|
|
{ TARGET_NR_arm_fadvise64_64, "arm_fadvise64_64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_bdflush
|
|
|
|
{ TARGET_NR_bdflush, "bdflush" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_bind
|
2019-10-21 13:48:55 +02:00
|
|
|
{ TARGET_NR_bind, "bind" , NULL, print_bind, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_bpf
|
|
|
|
{ TARGET_NR_bpf, "bpf" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_break
|
|
|
|
{ TARGET_NR_break, "break" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_brk
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_brk, "brk" , NULL, print_brk, print_syscall_ret_addr },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_cachectl
|
|
|
|
{ TARGET_NR_cachectl, "cachectl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_cacheflush
|
|
|
|
{ TARGET_NR_cacheflush, "cacheflush" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_capget
|
2018-06-28 05:46:42 +02:00
|
|
|
{ TARGET_NR_capget, "capget" , "%s(%p,%p)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_capset
|
2018-06-28 05:46:42 +02:00
|
|
|
{ TARGET_NR_capset, "capset" , "%s(%p,%p)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_chdir
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_chdir, "chdir" , NULL, print_chdir, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_chmod
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_chmod, "chmod" , NULL, print_chmod, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_chown
|
2020-06-19 14:33:30 +02:00
|
|
|
{ TARGET_NR_chown, "chown" , NULL, print_chown, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_chown32
|
|
|
|
{ TARGET_NR_chown32, "chown32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_chroot
|
2019-02-27 20:11:15 +01:00
|
|
|
{ TARGET_NR_chroot, "chroot" , NULL, print_chroot, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-10-10 13:23:29 +02:00
|
|
|
#ifdef TARGET_NR_clock_adjtime
|
|
|
|
{ TARGET_NR_clock_adjtime, "clock_adjtime" , NULL, print_clock_adjtime, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_clock_getres
|
linux-user: Add strace support for printing arguments of some clock and time functions
This patch implements strace argument printing functionality for following syscalls:
* clock_getres, clock_gettime, clock_settime - clock and time functions
int clock_getres(clockid_t clockid, struct timespec *res)
int clock_gettime(clockid_t clockid, struct timespec *tp)
int clock_settime(clockid_t clockid, const struct timespec *tp)
man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
* gettimeofday - get time
int gettimeofday(struct timeval *tv, struct timezone *tz)
man page: https://man7.org/linux/man-pages/man2/gettimeofday.2.html
* getitimer, setitimer - get or set value of an interval timer
int getitimer(int which, struct itimerval *curr_value)
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value)
man page: https://man7.org/linux/man-pages/man2/getitimer.2.html
Implementation notes:
All of the syscalls have some structue types as argument types and thus
a separate printing function was stated in file "strace.list" for each
of them. All of these functions use existing functions for their
appropriate structure types ("print_timeval()" and "print_timezone()").
Functions "print_timespec()" and "print_itimerval()" were added in this
patch so that they can be used to print types "struct timespec" and
"struct itimerval" used by some of the syscalls. Function "print_itimerval()"
uses the existing function "print_timeval()" to print fields of the
structure "struct itimerval" that are of type "struct timeval".
Function "print_enums()", which was introduced in the previous patch, is used
to print the interval timer type which is the first argument of "getitimer()"
and "setitimer()". Also, this function is used to print the clock id which
is the first argument of "clock_getres()" and "clock_gettime()". For that
reason, the existing function "print_clockid()" was removed in this patch.
Existing function "print_clock_adjtime()" was also changed for this reason
to use "print_enums()".
The existing function "print_timeval()" was changed a little so that it
prints the field names beside the values.
Syscalls "clock_getres()" and "clock_gettime()" have the same number
and types of arguments and thus their print functions "print_clock_getres"
and "print_clock_gettime" share a common definition in file "strace.c".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200811164553.27713-6-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-08-11 18:45:53 +02:00
|
|
|
{ TARGET_NR_clock_getres, "clock_getres" , NULL, print_clock_getres,
|
|
|
|
print_syscall_ret_clock_getres },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_clock_gettime
|
linux-user: Add strace support for printing arguments of some clock and time functions
This patch implements strace argument printing functionality for following syscalls:
* clock_getres, clock_gettime, clock_settime - clock and time functions
int clock_getres(clockid_t clockid, struct timespec *res)
int clock_gettime(clockid_t clockid, struct timespec *tp)
int clock_settime(clockid_t clockid, const struct timespec *tp)
man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
* gettimeofday - get time
int gettimeofday(struct timeval *tv, struct timezone *tz)
man page: https://man7.org/linux/man-pages/man2/gettimeofday.2.html
* getitimer, setitimer - get or set value of an interval timer
int getitimer(int which, struct itimerval *curr_value)
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value)
man page: https://man7.org/linux/man-pages/man2/getitimer.2.html
Implementation notes:
All of the syscalls have some structue types as argument types and thus
a separate printing function was stated in file "strace.list" for each
of them. All of these functions use existing functions for their
appropriate structure types ("print_timeval()" and "print_timezone()").
Functions "print_timespec()" and "print_itimerval()" were added in this
patch so that they can be used to print types "struct timespec" and
"struct itimerval" used by some of the syscalls. Function "print_itimerval()"
uses the existing function "print_timeval()" to print fields of the
structure "struct itimerval" that are of type "struct timeval".
Function "print_enums()", which was introduced in the previous patch, is used
to print the interval timer type which is the first argument of "getitimer()"
and "setitimer()". Also, this function is used to print the clock id which
is the first argument of "clock_getres()" and "clock_gettime()". For that
reason, the existing function "print_clockid()" was removed in this patch.
Existing function "print_clock_adjtime()" was also changed for this reason
to use "print_enums()".
The existing function "print_timeval()" was changed a little so that it
prints the field names beside the values.
Syscalls "clock_getres()" and "clock_gettime()" have the same number
and types of arguments and thus their print functions "print_clock_getres"
and "print_clock_gettime" share a common definition in file "strace.c".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200811164553.27713-6-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-08-11 18:45:53 +02:00
|
|
|
{ TARGET_NR_clock_gettime, "clock_gettime" , NULL, print_clock_gettime,
|
|
|
|
print_syscall_ret_clock_gettime },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_clock_nanosleep
|
|
|
|
{ TARGET_NR_clock_nanosleep, "clock_nanosleep" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_clock_settime
|
linux-user: Add strace support for printing arguments of some clock and time functions
This patch implements strace argument printing functionality for following syscalls:
* clock_getres, clock_gettime, clock_settime - clock and time functions
int clock_getres(clockid_t clockid, struct timespec *res)
int clock_gettime(clockid_t clockid, struct timespec *tp)
int clock_settime(clockid_t clockid, const struct timespec *tp)
man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
* gettimeofday - get time
int gettimeofday(struct timeval *tv, struct timezone *tz)
man page: https://man7.org/linux/man-pages/man2/gettimeofday.2.html
* getitimer, setitimer - get or set value of an interval timer
int getitimer(int which, struct itimerval *curr_value)
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value)
man page: https://man7.org/linux/man-pages/man2/getitimer.2.html
Implementation notes:
All of the syscalls have some structue types as argument types and thus
a separate printing function was stated in file "strace.list" for each
of them. All of these functions use existing functions for their
appropriate structure types ("print_timeval()" and "print_timezone()").
Functions "print_timespec()" and "print_itimerval()" were added in this
patch so that they can be used to print types "struct timespec" and
"struct itimerval" used by some of the syscalls. Function "print_itimerval()"
uses the existing function "print_timeval()" to print fields of the
structure "struct itimerval" that are of type "struct timeval".
Function "print_enums()", which was introduced in the previous patch, is used
to print the interval timer type which is the first argument of "getitimer()"
and "setitimer()". Also, this function is used to print the clock id which
is the first argument of "clock_getres()" and "clock_gettime()". For that
reason, the existing function "print_clockid()" was removed in this patch.
Existing function "print_clock_adjtime()" was also changed for this reason
to use "print_enums()".
The existing function "print_timeval()" was changed a little so that it
prints the field names beside the values.
Syscalls "clock_getres()" and "clock_gettime()" have the same number
and types of arguments and thus their print functions "print_clock_getres"
and "print_clock_gettime" share a common definition in file "strace.c".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200811164553.27713-6-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-08-11 18:45:53 +02:00
|
|
|
{ TARGET_NR_clock_settime, "clock_settime" , NULL, print_clock_settime, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_clone
|
2011-04-07 00:25:32 +02:00
|
|
|
{ TARGET_NR_clone, "clone" , NULL, print_clone, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_close
|
|
|
|
{ TARGET_NR_close, "close" , "%s(%d)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_connect
|
|
|
|
{ TARGET_NR_connect, "connect" , "%s(%d,%#x,%d)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_creat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_creat, "creat" , NULL, print_creat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_create_module
|
|
|
|
{ TARGET_NR_create_module, "create_module" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_delete_module
|
|
|
|
{ TARGET_NR_delete_module, "delete_module" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_dipc
|
|
|
|
{ TARGET_NR_dipc, "dipc" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_dup
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_dup, "dup" , "%s(%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_dup2
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_dup2, "dup2" , "%s(%d,%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2019-09-30 11:01:10 +02:00
|
|
|
#ifdef TARGET_NR_dup3
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_dup3, "dup3" , "%s(%d,%d,%d)", NULL, NULL },
|
2019-09-30 11:01:10 +02:00
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_epoll_create
|
2020-04-16 19:59:57 +02:00
|
|
|
{ TARGET_NR_epoll_create, "epoll_create", "%s(%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2014-06-22 12:25:38 +02:00
|
|
|
#ifdef TARGET_NR_epoll_create1
|
2020-04-16 19:59:57 +02:00
|
|
|
{ TARGET_NR_epoll_create1, "epoll_create1", "%s(%d)", NULL, NULL },
|
2014-06-22 12:25:38 +02:00
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_epoll_ctl
|
|
|
|
{ TARGET_NR_epoll_ctl, "epoll_ctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_epoll_ctl_old
|
|
|
|
{ TARGET_NR_epoll_ctl_old, "epoll_ctl_old" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_epoll_pwait
|
|
|
|
{ TARGET_NR_epoll_pwait, "epoll_pwait" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_epoll_wait
|
|
|
|
{ TARGET_NR_epoll_wait, "epoll_wait" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_epoll_wait_old
|
|
|
|
{ TARGET_NR_epoll_wait_old, "epoll_wait_old" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_eventfd
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_eventfd, "eventfd", "%s(%d)", NULL, NULL },
|
2016-09-19 13:44:44 +02:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_eventfd2
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_eventfd2, "eventfd2" , "%s(%d,%d)", NULL, NULL },
|
2016-09-19 13:44:44 +02:00
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_execv
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_execv, "execv" , NULL, print_execv, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_execve
|
|
|
|
{ TARGET_NR_execve, "execve" , NULL, print_execve, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_execveat
|
|
|
|
{ TARGET_NR_execveat, "execveat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_exec_with_loader
|
|
|
|
{ TARGET_NR_exec_with_loader, "exec_with_loader" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_exit
|
|
|
|
{ TARGET_NR_exit, "exit" , "%s(%d)\n", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR__exit
|
|
|
|
{ TARGET_NR__exit, "_exit" , "%s(%d)\n", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_exit_group
|
|
|
|
{ TARGET_NR_exit_group, "exit_group" , "%s(%d)\n", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_faccessat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_faccessat, "faccessat" , NULL, print_faccessat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fadvise64
|
|
|
|
{ TARGET_NR_fadvise64, "fadvise64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fadvise64_64
|
|
|
|
{ TARGET_NR_fadvise64_64, "fadvise64_64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_fallocate
|
2020-06-19 14:33:31 +02:00
|
|
|
{ TARGET_NR_fallocate, "fallocate" , NULL, print_fallocate, NULL },
|
2016-09-19 13:44:44 +02:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fanotify_init
|
|
|
|
{ TARGET_NR_fanotify_init, "fanotify_init" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fanotify_mark
|
|
|
|
{ TARGET_NR_fanotify_mark, "fanotify_mark" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_fchdir
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_fchdir, "fchdir" , "%s(%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fchmod
|
|
|
|
{ TARGET_NR_fchmod, "fchmod" , "%s(%d,%#o)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fchmodat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fchmodat, "fchmodat" , NULL, print_fchmodat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fchown
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fchown, "fchown" , "%s(%d,%d,%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fchown32
|
|
|
|
{ TARGET_NR_fchown32, "fchown32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fchownat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fchownat, "fchownat" , NULL, print_fchownat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fcntl
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fcntl, "fcntl" , NULL, print_fcntl, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fcntl64
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fcntl64, "fcntl64" , NULL, print_fcntl64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fdatasync
|
2020-06-19 14:33:27 +02:00
|
|
|
{ TARGET_NR_fdatasync, "fdatasync" , "%s(%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fgetxattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_fgetxattr, "fgetxattr" , NULL, print_fgetxattr, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_finit_module
|
|
|
|
{ TARGET_NR_finit_module, "finit_module" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_flistxattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_flistxattr, "flistxattr" , NULL, print_flistxattr,
|
|
|
|
print_syscall_ret_flistxattr},
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_flock
|
|
|
|
{ TARGET_NR_flock, "flock" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fork
|
|
|
|
{ TARGET_NR_fork, "fork" , "%s()", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fremovexattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_fremovexattr, "fremovexattr" , NULL, print_fremovexattr, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fsetxattr
|
|
|
|
{ TARGET_NR_fsetxattr, "fsetxattr" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fstat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fstat, "fstat" , NULL, print_fstat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fstat64
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fstat64, "fstat64" , NULL, print_fstat64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fstatfs
|
|
|
|
{ TARGET_NR_fstatfs, "fstatfs" , "%s(%d,%p)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fstatfs64
|
|
|
|
{ TARGET_NR_fstatfs64, "fstatfs64" , "%s(%d,%p)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fsync
|
2020-06-19 14:33:27 +02:00
|
|
|
{ TARGET_NR_fsync, "fsync" , "%s(%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ftime
|
|
|
|
{ TARGET_NR_ftime, "ftime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ftruncate
|
2020-08-11 18:45:50 +02:00
|
|
|
{ TARGET_NR_ftruncate, "ftruncate" , "%s(%d," TARGET_ABI_FMT_ld ")", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ftruncate64
|
2020-08-11 18:45:50 +02:00
|
|
|
{ TARGET_NR_ftruncate64, "ftruncate64" , NULL, print_ftruncate64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_futex
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_futex, "futex" , NULL, print_futex, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_futimesat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_futimesat, "futimesat" , NULL, print_futimesat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_getcpu
|
|
|
|
{ TARGET_NR_getcpu, "getcpu" , "%s(%p,%d)", NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_getcwd
|
|
|
|
{ TARGET_NR_getcwd, "getcwd" , "%s(%p,%d)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getdents
|
|
|
|
{ TARGET_NR_getdents, "getdents" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getdents64
|
|
|
|
{ TARGET_NR_getdents64, "getdents64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getdomainname
|
|
|
|
{ TARGET_NR_getdomainname, "getdomainname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getdtablesize
|
|
|
|
{ TARGET_NR_getdtablesize, "getdtablesize" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getegid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_getegid, "getegid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getegid32
|
|
|
|
{ TARGET_NR_getegid32, "getegid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_geteuid
|
linux-user: add strace for getuid(), gettid(), getppid(), geteuid()
Improve strace support for syscalls getuid(), gettid(), getppid()
and geteuid(). Since these system calls don't have arguments, "%s()"
is added in the corresponding strace.list entry so that no arguments
are printed.
getuid:
Prior to this commit, typical strace output used to look like this:
4894 getuid(4894,0,0,274886293296,-3689348814741910323,4832615904) = 1000
After this commit, it looks like this:
4894 getuid() = 1000
gettid:
Prior to this commit, typical strace output used to look like this:
8307 gettid(0,0,64,0,4832630528,4832615840) = 8307
After this commit, it looks like this:
8307 gettid() = 8307
getppid:
Prior to this commit, typical strace output used to look like this:
20588 getppid(20588,64,0,4832630528,4832615888,0) = 20625
After this commit, it looks like this:
20588 getppid() = 20625
geteuid:
Prior to this commit, typical strace output used to look like this:
20588 geteuid(64,0,0,4832615888,0,-9151031864016699136) = 1000
After this commit, it looks like this:
20588 geteuid() = 1000
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:41 +02:00
|
|
|
{ TARGET_NR_geteuid, "geteuid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_geteuid32
|
|
|
|
{ TARGET_NR_geteuid32, "geteuid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getgid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_getgid, "getgid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getgid32
|
|
|
|
{ TARGET_NR_getgid32, "getgid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getgroups
|
|
|
|
{ TARGET_NR_getgroups, "getgroups" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getgroups32
|
|
|
|
{ TARGET_NR_getgroups32, "getgroups32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_gethostname
|
|
|
|
{ TARGET_NR_gethostname, "gethostname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getitimer
|
linux-user: Add strace support for printing arguments of some clock and time functions
This patch implements strace argument printing functionality for following syscalls:
* clock_getres, clock_gettime, clock_settime - clock and time functions
int clock_getres(clockid_t clockid, struct timespec *res)
int clock_gettime(clockid_t clockid, struct timespec *tp)
int clock_settime(clockid_t clockid, const struct timespec *tp)
man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
* gettimeofday - get time
int gettimeofday(struct timeval *tv, struct timezone *tz)
man page: https://man7.org/linux/man-pages/man2/gettimeofday.2.html
* getitimer, setitimer - get or set value of an interval timer
int getitimer(int which, struct itimerval *curr_value)
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value)
man page: https://man7.org/linux/man-pages/man2/getitimer.2.html
Implementation notes:
All of the syscalls have some structue types as argument types and thus
a separate printing function was stated in file "strace.list" for each
of them. All of these functions use existing functions for their
appropriate structure types ("print_timeval()" and "print_timezone()").
Functions "print_timespec()" and "print_itimerval()" were added in this
patch so that they can be used to print types "struct timespec" and
"struct itimerval" used by some of the syscalls. Function "print_itimerval()"
uses the existing function "print_timeval()" to print fields of the
structure "struct itimerval" that are of type "struct timeval".
Function "print_enums()", which was introduced in the previous patch, is used
to print the interval timer type which is the first argument of "getitimer()"
and "setitimer()". Also, this function is used to print the clock id which
is the first argument of "clock_getres()" and "clock_gettime()". For that
reason, the existing function "print_clockid()" was removed in this patch.
Existing function "print_clock_adjtime()" was also changed for this reason
to use "print_enums()".
The existing function "print_timeval()" was changed a little so that it
prints the field names beside the values.
Syscalls "clock_getres()" and "clock_gettime()" have the same number
and types of arguments and thus their print functions "print_clock_getres"
and "print_clock_gettime" share a common definition in file "strace.c".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200811164553.27713-6-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-08-11 18:45:53 +02:00
|
|
|
{ TARGET_NR_getitimer, "getitimer" , NULL, print_getitimer,
|
|
|
|
print_syscall_ret_getitimer },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_get_kernel_syms
|
|
|
|
{ TARGET_NR_get_kernel_syms, "get_kernel_syms" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_get_mempolicy
|
|
|
|
{ TARGET_NR_get_mempolicy, "get_mempolicy" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpagesize
|
|
|
|
{ TARGET_NR_getpagesize, "getpagesize" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpeername
|
|
|
|
{ TARGET_NR_getpeername, "getpeername" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpgid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_getpgid, "getpgid" , "%s(%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpgrp
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_getpgrp, "getpgrp" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpid
|
2011-04-07 00:25:32 +02:00
|
|
|
{ TARGET_NR_getpid, "getpid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpmsg
|
|
|
|
{ TARGET_NR_getpmsg, "getpmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getppid
|
linux-user: add strace for getuid(), gettid(), getppid(), geteuid()
Improve strace support for syscalls getuid(), gettid(), getppid()
and geteuid(). Since these system calls don't have arguments, "%s()"
is added in the corresponding strace.list entry so that no arguments
are printed.
getuid:
Prior to this commit, typical strace output used to look like this:
4894 getuid(4894,0,0,274886293296,-3689348814741910323,4832615904) = 1000
After this commit, it looks like this:
4894 getuid() = 1000
gettid:
Prior to this commit, typical strace output used to look like this:
8307 gettid(0,0,64,0,4832630528,4832615840) = 8307
After this commit, it looks like this:
8307 gettid() = 8307
getppid:
Prior to this commit, typical strace output used to look like this:
20588 getppid(20588,64,0,4832630528,4832615888,0) = 20625
After this commit, it looks like this:
20588 getppid() = 20625
geteuid:
Prior to this commit, typical strace output used to look like this:
20588 geteuid(64,0,0,4832615888,0,-9151031864016699136) = 1000
After this commit, it looks like this:
20588 geteuid() = 1000
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:41 +02:00
|
|
|
{ TARGET_NR_getppid, "getppid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getpriority
|
|
|
|
{ TARGET_NR_getpriority, "getpriority", "%s(%#x,%#x)", NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_getrandom
|
|
|
|
{ TARGET_NR_getrandom, "getrandom", NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_getresgid
|
|
|
|
{ TARGET_NR_getresgid, "getresgid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getresgid32
|
|
|
|
{ TARGET_NR_getresgid32, "getresgid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getresuid
|
|
|
|
{ TARGET_NR_getresuid, "getresuid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getresuid32
|
|
|
|
{ TARGET_NR_getresuid32, "getresuid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getrlimit
|
|
|
|
{ TARGET_NR_getrlimit, "getrlimit" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_get_robust_list
|
|
|
|
{ TARGET_NR_get_robust_list, "get_robust_list" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getrusage
|
|
|
|
{ TARGET_NR_getrusage, "getrusage" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getsid
|
2020-08-11 18:45:50 +02:00
|
|
|
{ TARGET_NR_getsid, "getsid" , "%s(%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getsockname
|
|
|
|
{ TARGET_NR_getsockname, "getsockname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getsockopt
|
|
|
|
{ TARGET_NR_getsockopt, "getsockopt" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_get_thread_area
|
2016-06-11 02:19:48 +02:00
|
|
|
{ TARGET_NR_get_thread_area, "get_thread_area", "%s(0x"TARGET_ABI_FMT_lx")",
|
|
|
|
NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_gettid
|
linux-user: add strace for getuid(), gettid(), getppid(), geteuid()
Improve strace support for syscalls getuid(), gettid(), getppid()
and geteuid(). Since these system calls don't have arguments, "%s()"
is added in the corresponding strace.list entry so that no arguments
are printed.
getuid:
Prior to this commit, typical strace output used to look like this:
4894 getuid(4894,0,0,274886293296,-3689348814741910323,4832615904) = 1000
After this commit, it looks like this:
4894 getuid() = 1000
gettid:
Prior to this commit, typical strace output used to look like this:
8307 gettid(0,0,64,0,4832630528,4832615840) = 8307
After this commit, it looks like this:
8307 gettid() = 8307
getppid:
Prior to this commit, typical strace output used to look like this:
20588 getppid(20588,64,0,4832630528,4832615888,0) = 20625
After this commit, it looks like this:
20588 getppid() = 20625
geteuid:
Prior to this commit, typical strace output used to look like this:
20588 geteuid(64,0,0,4832615888,0,-9151031864016699136) = 1000
After this commit, it looks like this:
20588 geteuid() = 1000
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:41 +02:00
|
|
|
{ TARGET_NR_gettid, "gettid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_gettimeofday
|
linux-user: Add strace support for printing arguments of some clock and time functions
This patch implements strace argument printing functionality for following syscalls:
* clock_getres, clock_gettime, clock_settime - clock and time functions
int clock_getres(clockid_t clockid, struct timespec *res)
int clock_gettime(clockid_t clockid, struct timespec *tp)
int clock_settime(clockid_t clockid, const struct timespec *tp)
man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
* gettimeofday - get time
int gettimeofday(struct timeval *tv, struct timezone *tz)
man page: https://man7.org/linux/man-pages/man2/gettimeofday.2.html
* getitimer, setitimer - get or set value of an interval timer
int getitimer(int which, struct itimerval *curr_value)
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value)
man page: https://man7.org/linux/man-pages/man2/getitimer.2.html
Implementation notes:
All of the syscalls have some structue types as argument types and thus
a separate printing function was stated in file "strace.list" for each
of them. All of these functions use existing functions for their
appropriate structure types ("print_timeval()" and "print_timezone()").
Functions "print_timespec()" and "print_itimerval()" were added in this
patch so that they can be used to print types "struct timespec" and
"struct itimerval" used by some of the syscalls. Function "print_itimerval()"
uses the existing function "print_timeval()" to print fields of the
structure "struct itimerval" that are of type "struct timeval".
Function "print_enums()", which was introduced in the previous patch, is used
to print the interval timer type which is the first argument of "getitimer()"
and "setitimer()". Also, this function is used to print the clock id which
is the first argument of "clock_getres()" and "clock_gettime()". For that
reason, the existing function "print_clockid()" was removed in this patch.
Existing function "print_clock_adjtime()" was also changed for this reason
to use "print_enums()".
The existing function "print_timeval()" was changed a little so that it
prints the field names beside the values.
Syscalls "clock_getres()" and "clock_gettime()" have the same number
and types of arguments and thus their print functions "print_clock_getres"
and "print_clock_gettime" share a common definition in file "strace.c".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200811164553.27713-6-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-08-11 18:45:53 +02:00
|
|
|
{ TARGET_NR_gettimeofday, "gettimeofday" , NULL, print_gettimeofday,
|
|
|
|
print_syscall_ret_gettimeofday },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getuid
|
linux-user: add strace for getuid(), gettid(), getppid(), geteuid()
Improve strace support for syscalls getuid(), gettid(), getppid()
and geteuid(). Since these system calls don't have arguments, "%s()"
is added in the corresponding strace.list entry so that no arguments
are printed.
getuid:
Prior to this commit, typical strace output used to look like this:
4894 getuid(4894,0,0,274886293296,-3689348814741910323,4832615904) = 1000
After this commit, it looks like this:
4894 getuid() = 1000
gettid:
Prior to this commit, typical strace output used to look like this:
8307 gettid(0,0,64,0,4832630528,4832615840) = 8307
After this commit, it looks like this:
8307 gettid() = 8307
getppid:
Prior to this commit, typical strace output used to look like this:
20588 getppid(20588,64,0,4832630528,4832615888,0) = 20625
After this commit, it looks like this:
20588 getppid() = 20625
geteuid:
Prior to this commit, typical strace output used to look like this:
20588 geteuid(64,0,0,4832615888,0,-9151031864016699136) = 1000
After this commit, it looks like this:
20588 geteuid() = 1000
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:41 +02:00
|
|
|
{ TARGET_NR_getuid, "getuid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getuid32
|
|
|
|
{ TARGET_NR_getuid32, "getuid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getxattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_getxattr, "getxattr" , NULL, print_getxattr, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getxgid
|
|
|
|
{ TARGET_NR_getxgid, "getxgid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getxpid
|
|
|
|
{ TARGET_NR_getxpid, "getxpid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_getxuid
|
|
|
|
{ TARGET_NR_getxuid, "getxuid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_gtty
|
|
|
|
{ TARGET_NR_gtty, "gtty" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_idle
|
|
|
|
{ TARGET_NR_idle, "idle" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_init_module
|
|
|
|
{ TARGET_NR_init_module, "init_module" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_inotify_add_watch
|
|
|
|
{ TARGET_NR_inotify_add_watch, "inotify_add_watch" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_inotify_init
|
|
|
|
{ TARGET_NR_inotify_init, "inotify_init" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_inotify_init1
|
|
|
|
{ TARGET_NR_inotify_init1, "inotify_init1" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_inotify_rm_watch
|
|
|
|
{ TARGET_NR_inotify_rm_watch, "inotify_rm_watch" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_io_cancel
|
|
|
|
{ TARGET_NR_io_cancel, "io_cancel" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ioctl
|
linux-user: Add strace support for printing arguments of ioctl()
This patch implements functionality for strace argument printing for ioctls.
When running ioctls through qemu with "-strace", they get printed in format:
"ioctl(fd_num,0x*,0x*) = ret_value"
where the request code an the ioctl's third argument get printed in a hexadicemal
format. This patch changes that by enabling strace to print both the request code
name and the contents of the third argument. For example, when running ioctl
RTC_SET_TIME with "-strace", with changes from this patch, it gets printed in
this way:
"ioctl(3,RTC_SET_TIME,{12,13,15,20,10,119,0,0,0}) = 0"
In case of IOC_R type ioctls, the contents of the third argument get printed
after the return value, and the argument inside the ioctl call gets printed
as pointer in hexadecimal format. For example, when running RTC_RD_TIME with
"-strace", with changes from this patch, it gets printed in this way:
"ioctl(3,RTC_RD_TIME,0x40800374) = 0 ({22,9,13,11,5,120,0,0,0})"
In case of IOC_RW type ioctls, the contents of the third argument get printed
both inside the ioctl call and after the return value.
Implementation notes:
Functions "print_ioctl()" and "print_syscall_ret_ioctl()", that are defined
in "strace.c", are listed in file "strace.list" as "call" and "result"
value for ioctl. Structure definition "IOCTLEntry" as well as predefined
values for IOC_R, IOC_W and IOC_RW were cut and pasted from file "syscall.c"
to file "qemu.h" so that they can be used by these functions to print the
contents of the third ioctl argument. Also, the "static" identifier for array
"ioctl_entries[]" was removed and this array was declared as "extern" in "qemu.h"
so that it can also be used by these functions. To decode the structure type
of the ioctl third argument, function "thunk_print()" was defined in file
"thunk.c" and its definition is somewhat simillar to that of function
"thunk_convert()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619124727.18080-3-filip.bozuta@syrmia.com>
[lv: fix close-bracket]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:47:27 +02:00
|
|
|
{ TARGET_NR_ioctl, "ioctl" , NULL, print_ioctl,
|
|
|
|
print_syscall_ret_ioctl},
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_io_destroy
|
|
|
|
{ TARGET_NR_io_destroy, "io_destroy" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_io_getevents
|
|
|
|
{ TARGET_NR_io_getevents, "io_getevents" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ioperm
|
|
|
|
{ TARGET_NR_ioperm, "ioperm" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_iopl
|
|
|
|
{ TARGET_NR_iopl, "iopl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ioprio_get
|
|
|
|
{ TARGET_NR_ioprio_get, "ioprio_get" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ioprio_set
|
|
|
|
{ TARGET_NR_ioprio_set, "ioprio_set" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_io_setup
|
|
|
|
{ TARGET_NR_io_setup, "io_setup" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_io_submit
|
|
|
|
{ TARGET_NR_io_submit, "io_submit" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ipc
|
|
|
|
{ TARGET_NR_ipc, "ipc" , NULL, print_ipc, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_kcmp
|
|
|
|
{ TARGET_NR_kcmp, "kcmp" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_kexec_load
|
|
|
|
{ TARGET_NR_kexec_load, "kexec_load" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_keyctl
|
|
|
|
{ TARGET_NR_keyctl, "keyctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_kill
|
2011-04-07 00:25:32 +02:00
|
|
|
{ TARGET_NR_kill, "kill", NULL, print_kill, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lchown
|
2020-06-19 14:33:30 +02:00
|
|
|
{ TARGET_NR_lchown, "lchown" , NULL, print_lchown, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lchown32
|
|
|
|
{ TARGET_NR_lchown32, "lchown32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lgetxattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_lgetxattr, "lgetxattr" , NULL, print_lgetxattr, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_link
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_link, "link" , NULL, print_link, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_linkat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_linkat, "linkat" , NULL, print_linkat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_Linux
|
|
|
|
{ TARGET_NR_Linux, "Linux" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_listen
|
2020-06-19 14:33:27 +02:00
|
|
|
{ TARGET_NR_listen, "listen" , "%s(%d,%d)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_listxattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_listxattr, "listxattr" , NULL, print_listxattr,
|
|
|
|
print_syscall_ret_listxattr},
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_llistxattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_llistxattr, "llistxattr" , NULL, print_llistxattr,
|
|
|
|
print_syscall_ret_llistxattr},
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR__llseek
|
2011-04-07 00:25:32 +02:00
|
|
|
{ TARGET_NR__llseek, "_llseek" , NULL, print__llseek, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lock
|
|
|
|
{ TARGET_NR_lock, "lock" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lookup_dcookie
|
|
|
|
{ TARGET_NR_lookup_dcookie, "lookup_dcookie" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lremovexattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_lremovexattr, "lremovexattr" , NULL, print_lremovexattr, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lseek
|
2020-06-19 14:33:29 +02:00
|
|
|
{ TARGET_NR_lseek, "lseek" , NULL, print_lseek, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lsetxattr
|
|
|
|
{ TARGET_NR_lsetxattr, "lsetxattr" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lstat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_lstat, "lstat" , NULL, print_lstat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_lstat64
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_lstat64, "lstat64" , NULL, print_lstat64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_madvise
|
|
|
|
{ TARGET_NR_madvise, "madvise" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_madvise1
|
|
|
|
{ TARGET_NR_madvise1, "madvise1" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mbind
|
|
|
|
{ TARGET_NR_mbind, "mbind" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_membarrier
|
|
|
|
{ TARGET_NR_membarrier, "membarrier" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_memfd_create
|
|
|
|
{ TARGET_NR_memfd_create, "memfd_create" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_memory_ordering
|
|
|
|
{ TARGET_NR_memory_ordering, "memory_ordering" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_migrate_pages
|
|
|
|
{ TARGET_NR_migrate_pages, "migrate_pages" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mincore
|
|
|
|
{ TARGET_NR_mincore, "mincore" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mkdir
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mkdir, "mkdir" , NULL, print_mkdir, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mkdirat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mkdirat, "mkdirat" , NULL, print_mkdirat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2011-02-15 21:10:43 +01:00
|
|
|
#ifdef TARGET_NR_rmdir
|
|
|
|
{ TARGET_NR_rmdir, "rmdir" , NULL, print_rmdir, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_mknod
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mknod, "mknod" , NULL, print_mknod, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mknodat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mknodat, "mknodat" , NULL, print_mknodat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mlock
|
2020-08-11 18:45:51 +02:00
|
|
|
{ TARGET_NR_mlock, "mlock" , "%s(%p," TARGET_FMT_lu ")", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_mlock2
|
|
|
|
{ TARGET_NR_mlock2, "mlock2" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_mlockall
|
2020-08-11 18:45:51 +02:00
|
|
|
{ TARGET_NR_mlockall, "mlockall" , NULL, print_mlockall, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mmap
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mmap, "mmap" , NULL, print_mmap, print_syscall_ret_addr },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mmap2
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mmap2, "mmap2" , NULL, print_mmap2, print_syscall_ret_addr },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_modify_ldt
|
|
|
|
{ TARGET_NR_modify_ldt, "modify_ldt" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mount
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mount, "mount" , NULL, print_mount, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_move_pages
|
|
|
|
{ TARGET_NR_move_pages, "move_pages" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mprotect
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mprotect, "mprotect" , NULL, print_mprotect, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mpx
|
|
|
|
{ TARGET_NR_mpx, "mpx" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mq_getsetattr
|
2009-04-15 18:11:43 +02:00
|
|
|
{ TARGET_NR_mq_getsetattr, "mq_getsetattr" , "%s(%d,%p,%p)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mq_notify
|
2009-04-15 18:11:43 +02:00
|
|
|
{ TARGET_NR_mq_notify, "mq_notify" , "%s(%d,%p)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mq_open
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mq_open, "mq_open" , NULL, print_mq_open, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mq_timedreceive
|
2009-04-15 18:11:43 +02:00
|
|
|
{ TARGET_NR_mq_timedreceive, "mq_timedreceive" , "%s(%d,%p,%d,%u,%p)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mq_timedsend
|
2009-04-15 18:11:43 +02:00
|
|
|
{ TARGET_NR_mq_timedsend, "mq_timedsend" , "%s(%d,%p,%d,%u,%p)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mq_unlink
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_mq_unlink, "mq_unlink" , NULL, print_mq_unlink, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_mremap
|
|
|
|
{ TARGET_NR_mremap, "mremap" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_msgctl
|
|
|
|
{ TARGET_NR_msgctl, "msgctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_msgget
|
|
|
|
{ TARGET_NR_msgget, "msgget" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_msgrcv
|
|
|
|
{ TARGET_NR_msgrcv, "msgrcv" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_msgsnd
|
|
|
|
{ TARGET_NR_msgsnd, "msgsnd" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_msync
|
|
|
|
{ TARGET_NR_msync, "msync" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_multiplexer
|
|
|
|
{ TARGET_NR_multiplexer, "multiplexer" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_munlock
|
2020-08-11 18:45:51 +02:00
|
|
|
{ TARGET_NR_munlock, "munlock" , "%s(%p," TARGET_FMT_lu ")", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_munlockall
|
2020-08-11 18:45:51 +02:00
|
|
|
{ TARGET_NR_munlockall, "munlockall" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_munmap
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_munmap, "munmap" , NULL, print_munmap, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_name_to_handle_at
|
|
|
|
{ TARGET_NR_name_to_handle_at, "name_to_handle_at" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_nanosleep
|
|
|
|
{ TARGET_NR_nanosleep, "nanosleep" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_fstatat64
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_fstatat64, "fstatat64" , NULL, print_fstatat64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_newfstatat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_newfstatat, "newfstatat" , NULL, print_newfstatat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR__newselect
|
|
|
|
{ TARGET_NR__newselect, "_newselect" , NULL, print_newselect, print_syscall_ret_newselect },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_nfsservctl
|
|
|
|
{ TARGET_NR_nfsservctl, "nfsservctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_nice
|
|
|
|
{ TARGET_NR_nice, "nice" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_old_adjtimex
|
|
|
|
{ TARGET_NR_old_adjtimex, "old_adjtimex" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_oldfstat
|
|
|
|
{ TARGET_NR_oldfstat, "oldfstat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_oldlstat
|
|
|
|
{ TARGET_NR_oldlstat, "oldlstat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_oldolduname
|
|
|
|
{ TARGET_NR_oldolduname, "oldolduname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_oldstat
|
|
|
|
{ TARGET_NR_oldstat, "oldstat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_olduname
|
|
|
|
{ TARGET_NR_olduname, "olduname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_open
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_open, "open" , NULL, print_open, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_openat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_openat, "openat" , NULL, print_openat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_adjtime
|
|
|
|
{ TARGET_NR_osf_adjtime, "osf_adjtime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_afs_syscall
|
|
|
|
{ TARGET_NR_osf_afs_syscall, "osf_afs_syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_alt_plock
|
|
|
|
{ TARGET_NR_osf_alt_plock, "osf_alt_plock" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_alt_setsid
|
|
|
|
{ TARGET_NR_osf_alt_setsid, "osf_alt_setsid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_alt_sigpending
|
|
|
|
{ TARGET_NR_osf_alt_sigpending, "osf_alt_sigpending" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_asynch_daemon
|
|
|
|
{ TARGET_NR_osf_asynch_daemon, "osf_asynch_daemon" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_audcntl
|
|
|
|
{ TARGET_NR_osf_audcntl, "osf_audcntl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_audgen
|
|
|
|
{ TARGET_NR_osf_audgen, "osf_audgen" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_chflags
|
|
|
|
{ TARGET_NR_osf_chflags, "osf_chflags" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_execve
|
|
|
|
{ TARGET_NR_osf_execve, "osf_execve" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_exportfs
|
|
|
|
{ TARGET_NR_osf_exportfs, "osf_exportfs" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_fchflags
|
|
|
|
{ TARGET_NR_osf_fchflags, "osf_fchflags" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_fdatasync
|
|
|
|
{ TARGET_NR_osf_fdatasync, "osf_fdatasync" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_fpathconf
|
|
|
|
{ TARGET_NR_osf_fpathconf, "osf_fpathconf" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_fstatfs
|
|
|
|
{ TARGET_NR_osf_fstatfs, "osf_fstatfs" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_fuser
|
|
|
|
{ TARGET_NR_osf_fuser, "osf_fuser" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getaddressconf
|
|
|
|
{ TARGET_NR_osf_getaddressconf, "osf_getaddressconf" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getdirentries
|
|
|
|
{ TARGET_NR_osf_getdirentries, "osf_getdirentries" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getdomainname
|
|
|
|
{ TARGET_NR_osf_getdomainname, "osf_getdomainname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getfh
|
|
|
|
{ TARGET_NR_osf_getfh, "osf_getfh" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getfsstat
|
|
|
|
{ TARGET_NR_osf_getfsstat, "osf_getfsstat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_gethostid
|
|
|
|
{ TARGET_NR_osf_gethostid, "osf_gethostid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getitimer
|
|
|
|
{ TARGET_NR_osf_getitimer, "osf_getitimer" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getlogin
|
|
|
|
{ TARGET_NR_osf_getlogin, "osf_getlogin" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getmnt
|
|
|
|
{ TARGET_NR_osf_getmnt, "osf_getmnt" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getrusage
|
|
|
|
{ TARGET_NR_osf_getrusage, "osf_getrusage" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_getsysinfo
|
|
|
|
{ TARGET_NR_osf_getsysinfo, "osf_getsysinfo" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_gettimeofday
|
|
|
|
{ TARGET_NR_osf_gettimeofday, "osf_gettimeofday" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_kloadcall
|
|
|
|
{ TARGET_NR_osf_kloadcall, "osf_kloadcall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_kmodcall
|
|
|
|
{ TARGET_NR_osf_kmodcall, "osf_kmodcall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_memcntl
|
|
|
|
{ TARGET_NR_osf_memcntl, "osf_memcntl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_mincore
|
|
|
|
{ TARGET_NR_osf_mincore, "osf_mincore" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_mount
|
|
|
|
{ TARGET_NR_osf_mount, "osf_mount" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_mremap
|
|
|
|
{ TARGET_NR_osf_mremap, "osf_mremap" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_msfs_syscall
|
|
|
|
{ TARGET_NR_osf_msfs_syscall, "osf_msfs_syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_msleep
|
|
|
|
{ TARGET_NR_osf_msleep, "osf_msleep" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_mvalid
|
|
|
|
{ TARGET_NR_osf_mvalid, "osf_mvalid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_mwakeup
|
|
|
|
{ TARGET_NR_osf_mwakeup, "osf_mwakeup" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_naccept
|
|
|
|
{ TARGET_NR_osf_naccept, "osf_naccept" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_nfssvc
|
|
|
|
{ TARGET_NR_osf_nfssvc, "osf_nfssvc" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_ngetpeername
|
|
|
|
{ TARGET_NR_osf_ngetpeername, "osf_ngetpeername" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_ngetsockname
|
|
|
|
{ TARGET_NR_osf_ngetsockname, "osf_ngetsockname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_nrecvfrom
|
|
|
|
{ TARGET_NR_osf_nrecvfrom, "osf_nrecvfrom" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_nrecvmsg
|
|
|
|
{ TARGET_NR_osf_nrecvmsg, "osf_nrecvmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_nsendmsg
|
|
|
|
{ TARGET_NR_osf_nsendmsg, "osf_nsendmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_ntp_adjtime
|
|
|
|
{ TARGET_NR_osf_ntp_adjtime, "osf_ntp_adjtime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_ntp_gettime
|
|
|
|
{ TARGET_NR_osf_ntp_gettime, "osf_ntp_gettime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_creat
|
|
|
|
{ TARGET_NR_osf_old_creat, "osf_old_creat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_fstat
|
|
|
|
{ TARGET_NR_osf_old_fstat, "osf_old_fstat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_getpgrp
|
|
|
|
{ TARGET_NR_osf_old_getpgrp, "osf_old_getpgrp" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_killpg
|
|
|
|
{ TARGET_NR_osf_old_killpg, "osf_old_killpg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_lstat
|
|
|
|
{ TARGET_NR_osf_old_lstat, "osf_old_lstat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_open
|
|
|
|
{ TARGET_NR_osf_old_open, "osf_old_open" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_oldquota
|
|
|
|
{ TARGET_NR_osf_oldquota, "osf_oldquota" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_sigaction
|
|
|
|
{ TARGET_NR_osf_old_sigaction, "osf_old_sigaction" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_sigblock
|
|
|
|
{ TARGET_NR_osf_old_sigblock, "osf_old_sigblock" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_sigreturn
|
|
|
|
{ TARGET_NR_osf_old_sigreturn, "osf_old_sigreturn" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_sigsetmask
|
|
|
|
{ TARGET_NR_osf_old_sigsetmask, "osf_old_sigsetmask" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_sigvec
|
|
|
|
{ TARGET_NR_osf_old_sigvec, "osf_old_sigvec" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_stat
|
|
|
|
{ TARGET_NR_osf_old_stat, "osf_old_stat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_vadvise
|
|
|
|
{ TARGET_NR_osf_old_vadvise, "osf_old_vadvise" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_vtrace
|
|
|
|
{ TARGET_NR_osf_old_vtrace, "osf_old_vtrace" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_old_wait
|
|
|
|
{ TARGET_NR_osf_old_wait, "osf_old_wait" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_pathconf
|
|
|
|
{ TARGET_NR_osf_pathconf, "osf_pathconf" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_pid_block
|
|
|
|
{ TARGET_NR_osf_pid_block, "osf_pid_block" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_pid_unblock
|
|
|
|
{ TARGET_NR_osf_pid_unblock, "osf_pid_unblock" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_plock
|
|
|
|
{ TARGET_NR_osf_plock, "osf_plock" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_priocntlset
|
|
|
|
{ TARGET_NR_osf_priocntlset, "osf_priocntlset" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_profil
|
|
|
|
{ TARGET_NR_osf_profil, "osf_profil" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_proplist_syscall
|
|
|
|
{ TARGET_NR_osf_proplist_syscall, "osf_proplist_syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_reboot
|
|
|
|
{ TARGET_NR_osf_reboot, "osf_reboot" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_revoke
|
|
|
|
{ TARGET_NR_osf_revoke, "osf_revoke" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sbrk
|
|
|
|
{ TARGET_NR_osf_sbrk, "osf_sbrk" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_security
|
|
|
|
{ TARGET_NR_osf_security, "osf_security" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_select
|
|
|
|
{ TARGET_NR_osf_select, "osf_select" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sethostid
|
|
|
|
{ TARGET_NR_osf_sethostid, "osf_sethostid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_setitimer
|
|
|
|
{ TARGET_NR_osf_setitimer, "osf_setitimer" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_setlogin
|
|
|
|
{ TARGET_NR_osf_setlogin, "osf_setlogin" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_set_program_attributes
|
|
|
|
{ TARGET_NR_osf_set_program_attributes, "osf_set_program_attributes" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_set_speculative
|
|
|
|
{ TARGET_NR_osf_set_speculative, "osf_set_speculative" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_setsysinfo
|
|
|
|
{ TARGET_NR_osf_setsysinfo, "osf_setsysinfo" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_settimeofday
|
|
|
|
{ TARGET_NR_osf_settimeofday, "osf_settimeofday" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_shmat
|
|
|
|
{ TARGET_NR_osf_shmat, "osf_shmat" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_signal
|
|
|
|
{ TARGET_NR_osf_signal, "osf_signal" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sigprocmask
|
|
|
|
{ TARGET_NR_osf_sigprocmask, "osf_sigprocmask" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sigsendset
|
|
|
|
{ TARGET_NR_osf_sigsendset, "osf_sigsendset" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sigstack
|
|
|
|
{ TARGET_NR_osf_sigstack, "osf_sigstack" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sigwaitprim
|
|
|
|
{ TARGET_NR_osf_sigwaitprim, "osf_sigwaitprim" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sstk
|
|
|
|
{ TARGET_NR_osf_sstk, "osf_sstk" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_statfs
|
|
|
|
{ TARGET_NR_osf_statfs, "osf_statfs" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_subsys_info
|
|
|
|
{ TARGET_NR_osf_subsys_info, "osf_subsys_info" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_swapctl
|
|
|
|
{ TARGET_NR_osf_swapctl, "osf_swapctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_swapon
|
|
|
|
{ TARGET_NR_osf_swapon, "osf_swapon" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_syscall
|
|
|
|
{ TARGET_NR_osf_syscall, "osf_syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_sysinfo
|
|
|
|
{ TARGET_NR_osf_sysinfo, "osf_sysinfo" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_table
|
|
|
|
{ TARGET_NR_osf_table, "osf_table" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_uadmin
|
|
|
|
{ TARGET_NR_osf_uadmin, "osf_uadmin" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_usleep_thread
|
|
|
|
{ TARGET_NR_osf_usleep_thread, "osf_usleep_thread" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_uswitch
|
|
|
|
{ TARGET_NR_osf_uswitch, "osf_uswitch" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_utc_adjtime
|
|
|
|
{ TARGET_NR_osf_utc_adjtime, "osf_utc_adjtime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_utc_gettime
|
|
|
|
{ TARGET_NR_osf_utc_gettime, "osf_utc_gettime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_utimes
|
|
|
|
{ TARGET_NR_osf_utimes, "osf_utimes" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_utsname
|
|
|
|
{ TARGET_NR_osf_utsname, "osf_utsname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_wait4
|
|
|
|
{ TARGET_NR_osf_wait4, "osf_wait4" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_osf_waitid
|
|
|
|
{ TARGET_NR_osf_waitid, "osf_waitid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pause
|
|
|
|
{ TARGET_NR_pause, "pause" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pciconfig_iobase
|
|
|
|
{ TARGET_NR_pciconfig_iobase, "pciconfig_iobase" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pciconfig_read
|
|
|
|
{ TARGET_NR_pciconfig_read, "pciconfig_read" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pciconfig_write
|
|
|
|
{ TARGET_NR_pciconfig_write, "pciconfig_write" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_perf_event_open
|
|
|
|
{ TARGET_NR_perf_event_open, "perf_event_open" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_perfctr
|
|
|
|
{ TARGET_NR_perfctr, "perfctr" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_personality
|
|
|
|
{ TARGET_NR_personality, "personality" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pipe
|
|
|
|
{ TARGET_NR_pipe, "pipe" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pivot_root
|
|
|
|
{ TARGET_NR_pivot_root, "pivot_root" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_poll
|
|
|
|
{ TARGET_NR_poll, "poll" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ppoll
|
|
|
|
{ TARGET_NR_ppoll, "ppoll" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_prctl
|
|
|
|
{ TARGET_NR_prctl, "prctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pread64
|
|
|
|
{ TARGET_NR_pread64, "pread64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_preadv
|
|
|
|
{ TARGET_NR_preadv, "preadv" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_prlimit64
|
|
|
|
{ TARGET_NR_prlimit64, "prlimit64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_process_vm_readv
|
|
|
|
{ TARGET_NR_process_vm_readv, "process_vm_readv" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_process_vm_writev
|
|
|
|
{ TARGET_NR_process_vm_writev, "process_vm_writev" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_prof
|
|
|
|
{ TARGET_NR_prof, "prof" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_profil
|
|
|
|
{ TARGET_NR_profil, "profil" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pselect6
|
|
|
|
{ TARGET_NR_pselect6, "pselect6" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ptrace
|
|
|
|
{ TARGET_NR_ptrace, "ptrace" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_putpmsg
|
|
|
|
{ TARGET_NR_putpmsg, "putpmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_pwrite64
|
|
|
|
{ TARGET_NR_pwrite64, "pwrite64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_pwritev
|
|
|
|
{ TARGET_NR_pwritev, "pwritev" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_query_module
|
|
|
|
{ TARGET_NR_query_module, "query_module" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_quotactl
|
|
|
|
{ TARGET_NR_quotactl, "quotactl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_read
|
|
|
|
{ TARGET_NR_read, "read" , "%s(%d,%#x,%d)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_readahead
|
|
|
|
{ TARGET_NR_readahead, "readahead" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_readdir
|
|
|
|
{ TARGET_NR_readdir, "readdir" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_readlink
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_readlink, "readlink" , NULL, print_readlink, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_readlinkat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_readlinkat, "readlinkat" , NULL, print_readlinkat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_readv
|
|
|
|
{ TARGET_NR_readv, "readv" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_reboot
|
|
|
|
{ TARGET_NR_reboot, "reboot" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_recv
|
|
|
|
{ TARGET_NR_recv, "recv" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_recvfrom
|
|
|
|
{ TARGET_NR_recvfrom, "recvfrom" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_recvmmsg
|
|
|
|
{ TARGET_NR_recvmmsg, "recvmmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_recvmsg
|
2018-06-28 05:46:46 +02:00
|
|
|
{ TARGET_NR_recvmsg, "recvmsg" , "%s(%d,%p,%#x)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_remap_file_pages
|
|
|
|
{ TARGET_NR_remap_file_pages, "remap_file_pages" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_removexattr
|
linux-user: Add strace support for printing argument of syscalls used for extended attributes
This patch implements strace argument printing functionality for following syscalls:
*getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size)
ssize_t fgetxattr(int fd, const char *name, void *value, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/getxattr.2.html
*listxattr, llistxattr, flistxattr - list extended attribute names
ssize_t listxattr(const char *path, char *list, size_t size)
ssize_t llistxattr(const char *path, char *list, size_t size)
ssize_t flistxattr(int fd, char *list, size_t size)
man page: https://www.man7.org/linux/man-pages/man2/listxattr.2.html
*removexattr, lremovexattr, fremovexattr - remove an extended attribute
int removexattr(const char *path, const char *name)
int lremovexattr(const char *path, const char *name)
int fremovexattr(int fd, const char *name)
man page: https://www.man7.org/linux/man-pages/man2/removexattr.2.html
Implementation notes:
All of the syscalls have strings as argument types and thus a separate
printing function was stated in file "strace.list" for every one of them.
All of these printing functions were defined in "strace.c" using existing
printing functions for appropriate argument types:
"print_string()" - for (const char*) type
"print_pointer()" - for (char*) and (void *) type
"print_raw_param()" for (int) and (size_t) type
Syscalls "getxattr()" and "lgetxattr()" have the same number and type of
arguments and thus their print functions ("print_getxattr", "print_lgetxattr")
share a same definition. The same statement applies to syscalls "listxattr()"
and "llistxattr()".
Function "print_syscall_ret_listxattr()" was added to print the returned list
of extended attributes for syscalls "print_listxattr(), print_llistxattr() and
print_flistxattr()".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200619123331.17387-4-filip.bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-06-19 14:33:28 +02:00
|
|
|
{ TARGET_NR_removexattr, "removexattr" , NULL, print_removexattr, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rename
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_rename, "rename" , NULL, print_rename, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_renameat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_renameat, "renameat" , NULL, print_renameat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_renameat2
|
|
|
|
{ TARGET_NR_renameat2, "renameat2" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_request_key
|
|
|
|
{ TARGET_NR_request_key, "request_key" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_reserved177
|
|
|
|
{ TARGET_NR_reserved177, "reserved177" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_reserved193
|
|
|
|
{ TARGET_NR_reserved193, "reserved193" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_reserved221
|
|
|
|
{ TARGET_NR_reserved221, "reserved221" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_reserved82
|
|
|
|
{ TARGET_NR_reserved82, "reserved82" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_restart_syscall
|
|
|
|
{ TARGET_NR_restart_syscall, "restart_syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rmdir
|
|
|
|
{ TARGET_NR_rmdir, "rmdir" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigaction
|
2011-04-07 00:25:32 +02:00
|
|
|
{ TARGET_NR_rt_sigaction, "rt_sigaction" , NULL, print_rt_sigaction, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigpending
|
|
|
|
{ TARGET_NR_rt_sigpending, "rt_sigpending" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigprocmask
|
2011-04-07 00:25:32 +02:00
|
|
|
{ TARGET_NR_rt_sigprocmask, "rt_sigprocmask" , NULL, print_rt_sigprocmask, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigqueueinfo
|
linux-user: add tkill(), tgkill() and rt_sigqueueinfo() strace
Improve strace support for syscall tkill(), tgkill() and rt_sigqueueinfo()
by implementing print functions that match arguments types of the system
calls and add them to the corresponding starce.list entry.
tkill:
Prior to this commit, typical strace output used to look like this:
4886 tkill(4886,50,0,4832615904,0,-9151031864016699136) = 0
After this commit, it looks like this:
4886 tkill(4886,50) = 0
tgkill:
Prior to this commit, typical strace output used to look like this:
4890 tgkill(4890,4890,50,8,4832630528,4832615904) = 0
After this commit, it looks like this:
4890 tgkill(4890,4890,50) = 0
rt_sigqueueinfo:
Prior to this commit, typical strace output used to look like this:
8307 rt_sigqueueinfo(8307,50,1996483164,0,0,50) = 0
After this commit, it looks like this:
8307 rt_sigqueueinfo(8307,50,0x00000040007ff6b0) = 0
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:42 +02:00
|
|
|
{ TARGET_NR_rt_sigqueueinfo, "rt_sigqueueinfo" , NULL, print_rt_sigqueueinfo, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigreturn
|
|
|
|
{ TARGET_NR_rt_sigreturn, "rt_sigreturn" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigsuspend
|
|
|
|
{ TARGET_NR_rt_sigsuspend, "rt_sigsuspend" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_rt_sigtimedwait
|
|
|
|
{ TARGET_NR_rt_sigtimedwait, "rt_sigtimedwait" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_rt_tgsigqueueinfo
|
linux-user: add rt_tgsigqueueinfo() strace
This commit improves strace support for syscall rt_tgsigqueueinfo().
Prior to this commit, typical strace output used to look like this:
7775 rt_tgsigqueueinfo(7775,7775,50,1996483164,0,0) = 0
After this commit, it looks like this:
7775 rt_tgsigqueueinfo(7775,7775,50,0x76ffea5c) = 0
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:47 +02:00
|
|
|
{ TARGET_NR_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" , NULL, print_rt_tgsigqueueinfo, NULL },
|
2016-09-19 13:44:44 +02:00
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_sched_getaffinity
|
|
|
|
{ TARGET_NR_sched_getaffinity, "sched_getaffinity" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_get_affinity
|
|
|
|
{ TARGET_NR_sched_get_affinity, "sched_get_affinity" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_sched_getattr
|
|
|
|
{ TARGET_NR_sched_getattr, "sched_getattr" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_sched_getparam
|
|
|
|
{ TARGET_NR_sched_getparam, "sched_getparam" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_get_priority_max
|
|
|
|
{ TARGET_NR_sched_get_priority_max, "sched_get_priority_max" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_get_priority_min
|
|
|
|
{ TARGET_NR_sched_get_priority_min, "sched_get_priority_min" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_getscheduler
|
|
|
|
{ TARGET_NR_sched_getscheduler, "sched_getscheduler" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_rr_get_interval
|
|
|
|
{ TARGET_NR_sched_rr_get_interval, "sched_rr_get_interval" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_setaffinity
|
|
|
|
{ TARGET_NR_sched_setaffinity, "sched_setaffinity" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_sched_setatt
|
|
|
|
{ TARGET_NR_sched_setatt, "sched_setatt" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_sched_set_affinity
|
|
|
|
{ TARGET_NR_sched_set_affinity, "sched_set_affinity" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_setparam
|
|
|
|
{ TARGET_NR_sched_setparam, "sched_setparam" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_setscheduler
|
|
|
|
{ TARGET_NR_sched_setscheduler, "sched_setscheduler" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sched_yield
|
|
|
|
{ TARGET_NR_sched_yield, "sched_yield" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_seccomp
|
|
|
|
{ TARGET_NR_seccomp, "seccomp" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_security
|
|
|
|
{ TARGET_NR_security, "security" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_select
|
|
|
|
{ TARGET_NR_select, "select" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_semctl
|
|
|
|
{ TARGET_NR_semctl, "semctl" , NULL, print_semctl, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_semget
|
|
|
|
{ TARGET_NR_semget, "semget" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_semop
|
|
|
|
{ TARGET_NR_semop, "semop" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_semtimedop
|
|
|
|
{ TARGET_NR_semtimedop, "semtimedop" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_send
|
|
|
|
{ TARGET_NR_send, "send" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sendfile
|
|
|
|
{ TARGET_NR_sendfile, "sendfile" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sendfile64
|
|
|
|
{ TARGET_NR_sendfile64, "sendfile64" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_sendmmsg
|
|
|
|
{ TARGET_NR_sendmmsg, "sendmmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_sendmsg
|
|
|
|
{ TARGET_NR_sendmsg, "sendmsg" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sendto
|
|
|
|
{ TARGET_NR_sendto, "sendto" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setdomainname
|
|
|
|
{ TARGET_NR_setdomainname, "setdomainname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setfsgid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setfsgid, "setfsgid" , "%s(%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setfsgid32
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setfsgid32, "setfsgid32" , "%s(%u)" , NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setfsuid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setfsuid, "setfsuid" , "%s(%u)" , NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setfsuid32
|
|
|
|
{ TARGET_NR_setfsuid32, "setfsuid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setgid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setgid, "setgid" , "%s(%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setgid32
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setgid32, "setgid32" , "%s(%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setgroups
|
|
|
|
{ TARGET_NR_setgroups, "setgroups" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setgroups32
|
|
|
|
{ TARGET_NR_setgroups32, "setgroups32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sethae
|
|
|
|
{ TARGET_NR_sethae, "sethae" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sethostname
|
|
|
|
{ TARGET_NR_sethostname, "sethostname" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setitimer
|
linux-user: Add strace support for printing arguments of some clock and time functions
This patch implements strace argument printing functionality for following syscalls:
* clock_getres, clock_gettime, clock_settime - clock and time functions
int clock_getres(clockid_t clockid, struct timespec *res)
int clock_gettime(clockid_t clockid, struct timespec *tp)
int clock_settime(clockid_t clockid, const struct timespec *tp)
man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
* gettimeofday - get time
int gettimeofday(struct timeval *tv, struct timezone *tz)
man page: https://man7.org/linux/man-pages/man2/gettimeofday.2.html
* getitimer, setitimer - get or set value of an interval timer
int getitimer(int which, struct itimerval *curr_value)
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value)
man page: https://man7.org/linux/man-pages/man2/getitimer.2.html
Implementation notes:
All of the syscalls have some structue types as argument types and thus
a separate printing function was stated in file "strace.list" for each
of them. All of these functions use existing functions for their
appropriate structure types ("print_timeval()" and "print_timezone()").
Functions "print_timespec()" and "print_itimerval()" were added in this
patch so that they can be used to print types "struct timespec" and
"struct itimerval" used by some of the syscalls. Function "print_itimerval()"
uses the existing function "print_timeval()" to print fields of the
structure "struct itimerval" that are of type "struct timeval".
Function "print_enums()", which was introduced in the previous patch, is used
to print the interval timer type which is the first argument of "getitimer()"
and "setitimer()". Also, this function is used to print the clock id which
is the first argument of "clock_getres()" and "clock_gettime()". For that
reason, the existing function "print_clockid()" was removed in this patch.
Existing function "print_clock_adjtime()" was also changed for this reason
to use "print_enums()".
The existing function "print_timeval()" was changed a little so that it
prints the field names beside the values.
Syscalls "clock_getres()" and "clock_gettime()" have the same number
and types of arguments and thus their print functions "print_clock_getres"
and "print_clock_gettime" share a common definition in file "strace.c".
Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200811164553.27713-6-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-08-11 18:45:53 +02:00
|
|
|
{ TARGET_NR_setitimer, "setitimer" , NULL, print_setitimer,
|
|
|
|
print_syscall_ret_setitimer },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_set_mempolicy
|
|
|
|
{ TARGET_NR_set_mempolicy, "set_mempolicy" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2014-08-12 14:58:57 +02:00
|
|
|
#ifdef TARGET_NR_setns
|
|
|
|
{ TARGET_NR_setns, "setns" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_setpgid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setpgid, "setpgid" , "%s(%u,%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setpgrp
|
|
|
|
{ TARGET_NR_setpgrp, "setpgrp" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setpriority
|
|
|
|
{ TARGET_NR_setpriority, "setpriority" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setregid
|
|
|
|
{ TARGET_NR_setregid, "setregid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setregid32
|
|
|
|
{ TARGET_NR_setregid32, "setregid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setresgid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setresgid, "setresgid" , "%s(%u,%u,%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setresgid32
|
|
|
|
{ TARGET_NR_setresgid32, "setresgid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setresuid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setresuid, "setresuid" , "%s(%u,%u,%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setresuid32
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setresuid32, "setresuid32" , "%s(%u,%u,%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setreuid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setreuid, "setreuid" , "%s(%u,%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setreuid32
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setreuid32, "setreuid32" , "%s(%u,%u)", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setrlimit
|
|
|
|
{ TARGET_NR_setrlimit, "setrlimit" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_set_robust_list
|
|
|
|
{ TARGET_NR_set_robust_list, "set_robust_list" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setsid
|
2019-11-21 20:33:51 +01:00
|
|
|
{ TARGET_NR_setsid, "setsid" , "%s()", NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setsockopt
|
|
|
|
{ TARGET_NR_setsockopt, "setsockopt" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_set_thread_area
|
2016-06-11 02:19:48 +02:00
|
|
|
{ TARGET_NR_set_thread_area, "set_thread_area", "%s(0x"TARGET_ABI_FMT_lx")",
|
|
|
|
NULL, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_set_tid_address
|
|
|
|
{ TARGET_NR_set_tid_address, "set_tid_address" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_settimeofday
|
2019-10-21 13:48:51 +02:00
|
|
|
{ TARGET_NR_settimeofday, "settimeofday" , NULL, print_settimeofday, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setuid
|
|
|
|
{ TARGET_NR_setuid, "setuid" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setuid32
|
|
|
|
{ TARGET_NR_setuid32, "setuid32" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_setxattr
|
|
|
|
{ TARGET_NR_setxattr, "setxattr" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sgetmask
|
|
|
|
{ TARGET_NR_sgetmask, "sgetmask" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_shmat
|
2008-10-28 11:39:39 +01:00
|
|
|
{ TARGET_NR_shmat, "shmat" , NULL, NULL, print_syscall_ret_addr },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_shmctl
|
|
|
|
{ TARGET_NR_shmctl, "shmctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_shmdt
|
|
|
|
{ TARGET_NR_shmdt, "shmdt" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_shmget
|
|
|
|
{ TARGET_NR_shmget, "shmget" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_shutdown
|
|
|
|
{ TARGET_NR_shutdown, "shutdown" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sigaction
|
|
|
|
{ TARGET_NR_sigaction, "sigaction" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sigaltstack
|
|
|
|
{ TARGET_NR_sigaltstack, "sigaltstack" , "%s(%p,%p)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_signal
|
|
|
|
{ TARGET_NR_signal, "signal" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_signalfd
|
|
|
|
{ TARGET_NR_signalfd, "signalfd" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_signalfd4
|
|
|
|
{ TARGET_NR_signalfd4, "signalfd4" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_sigpending
|
|
|
|
{ TARGET_NR_sigpending, "sigpending" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sigprocmask
|
|
|
|
{ TARGET_NR_sigprocmask, "sigprocmask" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sigreturn
|
|
|
|
{ TARGET_NR_sigreturn, "sigreturn" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sigsuspend
|
|
|
|
{ TARGET_NR_sigsuspend, "sigsuspend" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_socket
|
2016-06-11 02:19:46 +02:00
|
|
|
{ TARGET_NR_socket, "socket" , NULL, print_socket, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_socketcall
|
2016-06-11 02:19:45 +02:00
|
|
|
{ TARGET_NR_socketcall, "socketcall" , NULL, print_socketcall, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_socketpair
|
|
|
|
{ TARGET_NR_socketpair, "socketpair" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_splice
|
|
|
|
{ TARGET_NR_splice, "splice" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ssetmask
|
|
|
|
{ TARGET_NR_ssetmask, "ssetmask" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_stat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_stat, "stat" , NULL, print_stat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_stat64
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_stat64, "stat64" , NULL, print_stat64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_statfs
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_statfs, "statfs" , NULL, print_statfs, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_statfs64
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_statfs64, "statfs64" , NULL, print_statfs64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_stime
|
|
|
|
{ TARGET_NR_stime, "stime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_streams1
|
|
|
|
{ TARGET_NR_streams1, "streams1" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_streams2
|
|
|
|
{ TARGET_NR_streams2, "streams2" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_stty
|
|
|
|
{ TARGET_NR_stty, "stty" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_swapcontext
|
|
|
|
{ TARGET_NR_swapcontext, "swapcontext" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_swapoff
|
|
|
|
{ TARGET_NR_swapoff, "swapoff" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_swapon
|
|
|
|
{ TARGET_NR_swapon, "swapon" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_symlink
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_symlink, "symlink" , NULL, print_symlink, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_symlinkat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_symlinkat, "symlinkat", NULL, print_symlinkat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sync
|
|
|
|
{ TARGET_NR_sync, "sync" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_syncfs
|
2016-10-10 13:23:30 +02:00
|
|
|
{ TARGET_NR_syncfs, "syncfs" , "%s(%d)", NULL, NULL },
|
2016-09-19 13:44:44 +02:00
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_syscall
|
|
|
|
{ TARGET_NR_syscall, "syscall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR__sysctl
|
|
|
|
{ TARGET_NR__sysctl, "_sysctl" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sysfs
|
|
|
|
{ TARGET_NR_sysfs, "sysfs" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sysinfo
|
|
|
|
{ TARGET_NR_sysinfo, "sysinfo" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sys_kexec_load
|
|
|
|
{ TARGET_NR_sys_kexec_load, "sys_kexec_load" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_syslog
|
linux-user: Fix syslog() syscall support
There are currently several problems related to syslog() support.
For example, if the second argument "bufp" of target syslog() syscall
is NULL, the current implementation always returns error code EFAULT.
However, NULL is a perfectly valid value for the second argument for
many use cases of this syscall. This is, for example, visible from
this excerpt of man page for syslog(2):
> EINVAL Bad arguments (e.g., bad type; or for type 2, 3, or 4, buf is
> NULL, or len is less than zero; or for type 8, the level is
> outside the range 1 to 8).
Moreover, the argument "bufp" is ignored for all cases of values of the
first argument, except 2, 3 and 4. This means that for such cases
(the first argument is not 2, 3 or 4), there is no need to pass "buf"
between host and target, and it can be set to NULL while calling host's
syslog(), without loss of emulation accuracy.
Note also that if "bufp" is NULL and the first argument is 2, 3 or 4, the
correct returned error code is EINVAL, not EFAULT.
All these details are reflected in this patch.
"#ifdef TARGET_NR_syslog" is also proprerly inserted when needed.
Support for Qemu's "-strace" switch for syslog() syscall is included too.
LTP tests syslog11 and syslog12 pass with this patch (while fail without
it), on any platform.
Changes to original patch by Riku Voipio:
fixed error paths in TARGET_SYSLOG_ACTION_READ_ALL to match
http://lxr.free-electrons.com/source/kernel/printk/printk.c?v=4.7#L1335
Should fix also the build error in:
https://lists.gnu.org/archive/html/qemu-devel/2016-10/msg03721.html
Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2016-09-22 18:56:58 +02:00
|
|
|
{ TARGET_NR_syslog, "syslog" , NULL, print_syslog, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sysmips
|
|
|
|
{ TARGET_NR_sysmips, "sysmips" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sys_setaltroot
|
|
|
|
{ TARGET_NR_sys_setaltroot, "sys_setaltroot" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_tee
|
|
|
|
{ TARGET_NR_tee, "tee" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_tgkill
|
linux-user: add tkill(), tgkill() and rt_sigqueueinfo() strace
Improve strace support for syscall tkill(), tgkill() and rt_sigqueueinfo()
by implementing print functions that match arguments types of the system
calls and add them to the corresponding starce.list entry.
tkill:
Prior to this commit, typical strace output used to look like this:
4886 tkill(4886,50,0,4832615904,0,-9151031864016699136) = 0
After this commit, it looks like this:
4886 tkill(4886,50) = 0
tgkill:
Prior to this commit, typical strace output used to look like this:
4890 tgkill(4890,4890,50,8,4832630528,4832615904) = 0
After this commit, it looks like this:
4890 tgkill(4890,4890,50) = 0
rt_sigqueueinfo:
Prior to this commit, typical strace output used to look like this:
8307 rt_sigqueueinfo(8307,50,1996483164,0,0,50) = 0
After this commit, it looks like this:
8307 rt_sigqueueinfo(8307,50,0x00000040007ff6b0) = 0
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:42 +02:00
|
|
|
{ TARGET_NR_tgkill, "tgkill" , NULL, print_tgkill, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_time
|
|
|
|
{ TARGET_NR_time, "time" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timer_create
|
|
|
|
{ TARGET_NR_timer_create, "timer_create" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timer_delete
|
|
|
|
{ TARGET_NR_timer_delete, "timer_delete" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timer_getoverrun
|
|
|
|
{ TARGET_NR_timer_getoverrun, "timer_getoverrun" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timer_gettime
|
|
|
|
{ TARGET_NR_timer_gettime, "timer_gettime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timer_settime
|
|
|
|
{ TARGET_NR_timer_settime, "timer_settime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_timerfd
|
|
|
|
{ TARGET_NR_timerfd, "timerfd" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2014-06-22 12:25:42 +02:00
|
|
|
#ifdef TARGET_NR_timerfd_create
|
|
|
|
{ TARGET_NR_timerfd_create, "timerfd_create" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timerfd_gettime
|
|
|
|
{ TARGET_NR_timerfd_gettime, "timerfd_gettime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_timerfd_settime
|
|
|
|
{ TARGET_NR_timerfd_settime, "timerfd_settime" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_times
|
|
|
|
{ TARGET_NR_times, "times" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_tkill
|
linux-user: add tkill(), tgkill() and rt_sigqueueinfo() strace
Improve strace support for syscall tkill(), tgkill() and rt_sigqueueinfo()
by implementing print functions that match arguments types of the system
calls and add them to the corresponding starce.list entry.
tkill:
Prior to this commit, typical strace output used to look like this:
4886 tkill(4886,50,0,4832615904,0,-9151031864016699136) = 0
After this commit, it looks like this:
4886 tkill(4886,50) = 0
tgkill:
Prior to this commit, typical strace output used to look like this:
4890 tgkill(4890,4890,50,8,4832630528,4832615904) = 0
After this commit, it looks like this:
4890 tgkill(4890,4890,50) = 0
rt_sigqueueinfo:
Prior to this commit, typical strace output used to look like this:
8307 rt_sigqueueinfo(8307,50,1996483164,0,0,50) = 0
After this commit, it looks like this:
8307 rt_sigqueueinfo(8307,50,0x00000040007ff6b0) = 0
Signed-off-by: Miloš Stojanović <Milos.Stojanovic@rt-rk.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2017-05-15 16:59:42 +02:00
|
|
|
{ TARGET_NR_tkill, "tkill" , NULL, print_tkill, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_truncate
|
2020-08-11 18:45:50 +02:00
|
|
|
{ TARGET_NR_truncate, "truncate" , NULL, print_truncate, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_truncate64
|
2020-08-11 18:45:50 +02:00
|
|
|
{ TARGET_NR_truncate64, "truncate64" , NULL, print_truncate64, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_tuxcall
|
|
|
|
{ TARGET_NR_tuxcall, "tuxcall" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ugetrlimit
|
|
|
|
{ TARGET_NR_ugetrlimit, "ugetrlimit" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ulimit
|
|
|
|
{ TARGET_NR_ulimit, "ulimit" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_umask
|
|
|
|
{ TARGET_NR_umask, "umask" , "%s(%#o)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_umount
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_umount, "umount" , NULL, print_umount, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_umount2
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_umount2, "umount2" , NULL, print_umount2, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_uname
|
|
|
|
{ TARGET_NR_uname, "uname" , "%s(%p)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unlink
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_unlink, "unlink" , NULL, print_unlink, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unlinkat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_unlinkat, "unlinkat" , NULL, print_unlinkat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unshare
|
|
|
|
{ TARGET_NR_unshare, "unshare" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2016-09-19 13:44:44 +02:00
|
|
|
#ifdef TARGET_NR_userfaultfd
|
|
|
|
{ TARGET_NR_userfaultfd, "userfaultfd" , NULL, NULL, NULL },
|
|
|
|
#endif
|
2007-11-01 01:13:36 +01:00
|
|
|
#ifdef TARGET_NR_unused109
|
|
|
|
{ TARGET_NR_unused109, "unused109" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unused150
|
|
|
|
{ TARGET_NR_unused150, "unused150" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unused18
|
|
|
|
{ TARGET_NR_unused18, "unused18" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unused28
|
|
|
|
{ TARGET_NR_unused28, "unused28" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unused59
|
|
|
|
{ TARGET_NR_unused59, "unused59" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_unused84
|
|
|
|
{ TARGET_NR_unused84, "unused84" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_uselib
|
|
|
|
{ TARGET_NR_uselib, "uselib" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_ustat
|
|
|
|
{ TARGET_NR_ustat, "ustat" , "%s(%#x,%p)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_utime
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_utime, "utime" , NULL, print_utime, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_utimes
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_utimes, "utimes" , NULL, print_utimes, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_utrap_install
|
|
|
|
{ TARGET_NR_utrap_install, "utrap_install" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_vfork
|
|
|
|
{ TARGET_NR_vfork, "vfork" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_vhangup
|
|
|
|
{ TARGET_NR_vhangup, "vhangup" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_vm86
|
|
|
|
{ TARGET_NR_vm86, "vm86" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_vm86old
|
|
|
|
{ TARGET_NR_vm86old, "vm86old" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_vmsplice
|
|
|
|
{ TARGET_NR_vmsplice, "vmsplice" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_vserver
|
|
|
|
{ TARGET_NR_vserver, "vserver" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_wait4
|
|
|
|
{ TARGET_NR_wait4, "wait4" , NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_waitid
|
|
|
|
{ TARGET_NR_waitid, "waitid" , "%s(%#x,%d,%p,%#x)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_waitpid
|
|
|
|
{ TARGET_NR_waitpid, "waitpid" , "%s(%d,%p,%#x)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_write
|
|
|
|
{ TARGET_NR_write, "write" , "%s(%d,%#x,%d)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_writev
|
|
|
|
{ TARGET_NR_writev, "writev" , "%s(%d,%p,%#x)", NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_utimensat
|
2009-04-07 15:57:29 +02:00
|
|
|
{ TARGET_NR_utimensat, "utimensat", NULL, print_utimensat, NULL },
|
2007-11-01 01:13:36 +01:00
|
|
|
#endif
|
2011-01-06 12:05:10 +01:00
|
|
|
#ifdef TARGET_NR_sync_file_range
|
|
|
|
{ TARGET_NR_sync_file_range, "sync_file_range", NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_sync_file_range2
|
|
|
|
{ TARGET_NR_sync_file_range2, "sync_file_range2", NULL, NULL, NULL },
|
|
|
|
#endif
|
2012-06-02 03:48:39 +02:00
|
|
|
#ifdef TARGET_NR_pipe2
|
|
|
|
{ TARGET_NR_pipe2, "pipe2", NULL, NULL, NULL },
|
|
|
|
#endif
|
2013-07-24 08:44:26 +02:00
|
|
|
#ifdef TARGET_NR_atomic_cmpxchg_32
|
|
|
|
{ TARGET_NR_atomic_cmpxchg_32, "atomic_cmpxchg_32", NULL, NULL, NULL },
|
|
|
|
#endif
|
|
|
|
#ifdef TARGET_NR_atomic_barrier
|
|
|
|
{ TARGET_NR_atomic_barrier, "atomic_barrier", NULL, NULL, NULL },
|
|
|
|
#endif
|
2019-06-28 12:43:35 +02:00
|
|
|
#ifdef TARGET_NR_statx
|
|
|
|
{ TARGET_NR_statx, "statx", NULL, print_statx, NULL },
|
|
|
|
#endif
|