From: Dmitry V. Levin Date: Fri, 13 Oct 2006 20:25:12 +0000 (+0000) Subject: 2006-10-13 Ulrich Drepper X-Git-Tag: v4.5.18~267 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95ebf5abfc1f3ed8b451b7816aa51b93a49e3ef7;p=strace 2006-10-13 Ulrich Drepper Bernhard Kaindl Dmitry V. Levin Michael Holzheu Add hooks for new syscalls. Add decoders for *at, inotify*, pselect6, ppoll and unshare syscalls. * defs.h: Declare print_sigset. * desc.c (sys_pselect6): New function. * file.c (decode_open, decode_access, decode_mkdir, decode_readlink, decode_chmod, decode_utimes, decode_mknod): New functions. (sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod, sys_utimes, sys_mknod): Use them. [LINUX] (fstatatflags, unlinkatflags, inotify_modes): New variables. [LINUX] (print_dirfd, sys_openat, sys_faccessat, sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat, sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat, sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch, sys_inotify_rm_watch): New functions. * process.c [LINUX] (sys_unshare): New function. * signal.c (print_sigset): New function. (sys_sigprocmask): Use it. * stream.c (decode_poll): New function. (sys_poll): Use it. [LINUX] (sys_ppoll): New function. * linux/syscall.h: Delcare new syscall handlers. * linux/syscallent.h: Hook up new syscalls. * linux/alpha/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/mips/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. Fixes RH#178633. --- diff --git a/ChangeLog b/ChangeLog index 27eaed6f..b7715157 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,45 @@ +2006-10-13 Ulrich Drepper + Bernhard Kaindl + Dmitry V. Levin + Michael Holzheu + + Add hooks for new syscalls. Add decoders for *at, inotify*, + pselect6, ppoll and unshare syscalls. + + * defs.h: Declare print_sigset. + * desc.c (sys_pselect6): New function. + * file.c (decode_open, decode_access, decode_mkdir, + decode_readlink, decode_chmod, decode_utimes, decode_mknod): + New functions. + (sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod, + sys_utimes, sys_mknod): Use them. + [LINUX] (fstatatflags, unlinkatflags, inotify_modes): New + variables. + [LINUX] (print_dirfd, sys_openat, sys_faccessat, + sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat, + sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat, + sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch, + sys_inotify_rm_watch): New functions. + * process.c [LINUX] (sys_unshare): New function. + * signal.c (print_sigset): New function. + (sys_sigprocmask): Use it. + * stream.c (decode_poll): New function. + (sys_poll): Use it. + [LINUX] (sys_ppoll): New function. + * linux/syscall.h: Delcare new syscall handlers. + * linux/syscallent.h: Hook up new syscalls. + * linux/alpha/syscallent.h: Likewise. + * linux/hppa/syscallent.h: Likewise. + * linux/ia64/syscallent.h: Likewise. + * linux/mips/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + Fixes RH#178633. + 2006-10-06 Dmitry V. Levin * strace.c [!USE_PROCFS] (trace): Presence of PT_GETSIGINFO diff --git a/defs.h b/defs.h index 7790c0a7..312f28eb 100644 --- a/defs.h +++ b/defs.h @@ -463,6 +463,7 @@ extern int setbpt P((struct tcb *)); extern int sigishandled P((struct tcb *, int)); extern void printcall P((struct tcb *)); extern const char *signame P((int)); +extern void print_sigset P((struct tcb *, long, int)); extern void printsignal P((int)); extern void printleader P((struct tcb *)); extern void printtrailer P((struct tcb *)); diff --git a/desc.c b/desc.c index bb30b6f0..9cdabbb8 100644 --- a/desc.c +++ b/desc.c @@ -871,6 +871,30 @@ int sys_select(tcp) struct tcb *tcp; { - long *args = tcp->u_arg; - return decode_select(tcp, args, 0); + return decode_select(tcp, tcp->u_arg, 0); +} + +#ifdef LINUX +int +sys_pselect6(struct tcb *tcp) +{ + int rc = decode_select(tcp, tcp->u_arg, 0); + if (exiting(tcp)) { + struct { + void *ss; + unsigned long len; + } data; + if (umove(tcp, tcp->u_arg[5], &data) < 0) + tprintf(", %#lx", tcp->u_arg[5]); + else { + tprintf(", {"); + if (data.len < sizeof(sigset_t)) + tprintf("%#lx", (long)data.ss); + else + print_sigset(tcp, (long)data.ss, 0); + tprintf(", %lu}", data.len); + } + } + return rc; } +#endif diff --git a/file.c b/file.c index 6d74e3d9..62cc536b 100644 --- a/file.c +++ b/file.c @@ -307,23 +307,54 @@ const struct xlat openmodes[] = { { 0, NULL }, }; -int -sys_open(tcp) -struct tcb *tcp; +#ifdef LINUX + +#ifndef AT_FDCWD +# define AT_FDCWD -100 +#endif + +static void +print_dirfd(long fd) +{ + if (fd == AT_FDCWD) + tprintf("AT_FDCWD, "); + else + tprintf("%ld, ", fd); +} +#endif + +static int +decode_open(struct tcb *tcp, int offset) { if (entering(tcp)) { - printpath(tcp, tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[offset]); tprintf(", "); /* flags */ - printflags(openmodes, tcp->u_arg[1] + 1, "O_???"); - if (tcp->u_arg[1] & O_CREAT) { + printflags(openmodes, tcp->u_arg[offset + 1] + 1, "O_???"); + if (tcp->u_arg[offset + 1] & O_CREAT) { /* mode */ - tprintf(", %#lo", tcp->u_arg[2]); + tprintf(", %#lo", tcp->u_arg[offset + 2]); } } return 0; } +int +sys_open(struct tcb *tcp) +{ + return decode_open(tcp, 0); +} + +#ifdef LINUX +int +sys_openat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_open(tcp, 1); +} +#endif + #ifdef LINUXSPARC static const struct xlat openmodessol[] = { { 0, "O_RDWR" }, @@ -387,18 +418,33 @@ static const struct xlat access_flags[] = { { 0, NULL }, }; -int -sys_access(tcp) -struct tcb *tcp; +static int +decode_access(struct tcb *tcp, int offset) { if (entering(tcp)) { - printpath(tcp, tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[offset]); tprintf(", "); - printflags(access_flags, tcp->u_arg[1], "?_OK"); + printflags(access_flags, tcp->u_arg[offset + 1], "?_OK"); } return 0; } +int +sys_access(struct tcb *tcp) +{ + return decode_access(tcp, 0); +} + +#ifdef LINUX +int +sys_faccessat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_access(tcp, 1); +} +#endif + int sys_umask(tcp) struct tcb *tcp; @@ -1099,6 +1145,35 @@ struct tcb *tcp; #endif } +#ifdef LINUX +static const struct xlat fstatatflags[] = { +#ifndef AT_SYMLINK_NOFOLLOW +# define AT_SYMLINK_NOFOLLOW 0x100 +#endif + { AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" }, + { 0, NULL }, +}; + +int +sys_newfstatat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + } else { +#ifdef HAVE_STAT64 + printstat64(tcp, tcp->u_arg[2]); +#else + printstat(tcp, tcp->u_arg[2]); +#endif + tprintf(", "); + printflags(fstatatflags, tcp->u_arg[3], "AT_???"); + } + return 0; +} +#endif + #if defined(LINUX) && defined(HAVE_STRUCT___OLD_KERNEL_STAT) int sys_oldstat(tcp) @@ -1684,17 +1759,32 @@ struct tcb *tcp; return 0; } -int -sys_mkdir(tcp) -struct tcb *tcp; +static int +decode_mkdir(struct tcb *tcp, int offset) { if (entering(tcp)) { - printpath(tcp, tcp->u_arg[0]); - tprintf(", %#lo", tcp->u_arg[1]); + printpath(tcp, tcp->u_arg[offset]); + tprintf(", %#lo", tcp->u_arg[offset + 1]); } return 0; } +int +sys_mkdir(struct tcb *tcp) +{ + return decode_mkdir(tcp, 0); +} + +#ifdef LINUX +int +sys_mkdirat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_mkdir(tcp, 1); +} +#endif + int sys_rmdir(tcp) struct tcb *tcp; @@ -1747,6 +1837,22 @@ struct tcb *tcp; return 0; } +#ifdef LINUX +int +sys_linkat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + print_dirfd(tcp->u_arg[2]); + printpath(tcp, tcp->u_arg[3]); + tprintf(", %ld", tcp->u_arg[4]); + } + return 0; +} +#endif + int sys_unlink(tcp) struct tcb *tcp; @@ -1757,6 +1863,28 @@ struct tcb *tcp; return 0; } +#ifdef LINUX +static const struct xlat unlinkatflags[] = { +#ifndef AT_REMOVEDIR +# define AT_REMOVEDIR 0x200 +#endif + { AT_REMOVEDIR, "AT_REMOVEDIR" }, + { 0, NULL }, +}; + +int +sys_unlinkat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + printflags(unlinkatflags, tcp->u_arg[2], "AT_???"); + } + return 0; +} +#endif + int sys_symlink(tcp) struct tcb *tcp; @@ -1769,23 +1897,52 @@ struct tcb *tcp; return 0; } +#ifdef LINUX int -sys_readlink(tcp) -struct tcb *tcp; +sys_symlinkat(struct tcb *tcp) { if (entering(tcp)) { printpath(tcp, tcp->u_arg[0]); tprintf(", "); + print_dirfd(tcp->u_arg[1]); + printpath(tcp, tcp->u_arg[2]); + } + return 0; +} +#endif + +static int +decode_readlink(struct tcb *tcp, int offset) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", "); } else { if (syserror(tcp)) - tprintf("%#lx", tcp->u_arg[1]); + tprintf("%#lx", tcp->u_arg[offset + 1]); else - printpathn(tcp, tcp->u_arg[1], tcp->u_rval); - tprintf(", %lu", tcp->u_arg[2]); + printpathn(tcp, tcp->u_arg[offset + 1], tcp->u_rval); + tprintf(", %lu", tcp->u_arg[offset + 2]); } return 0; } +int +sys_readlink(struct tcb *tcp) +{ + return decode_readlink(tcp, 0); +} + +#ifdef LINUX +int +sys_readlinkat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_readlink(tcp, 1); +} +#endif + int sys_rename(tcp) struct tcb *tcp; @@ -1798,6 +1955,21 @@ struct tcb *tcp; return 0; } +#ifdef LINUX +int +sys_renameat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + print_dirfd(tcp->u_arg[2]); + printpath(tcp, tcp->u_arg[3]); + } + return 0; +} +#endif + int sys_chown(tcp) struct tcb *tcp; @@ -1810,6 +1982,22 @@ struct tcb *tcp; return 0; } +#ifdef LINUX +int +sys_fchownat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + printuid(", ", tcp->u_arg[2]); + printuid(", ", tcp->u_arg[3]); + tprintf(", "); + printflags(fstatatflags, tcp->u_arg[4], "AT_???"); + } + return 0; +} +#endif + int sys_fchown(tcp) struct tcb *tcp; @@ -1822,17 +2010,32 @@ struct tcb *tcp; return 0; } -int -sys_chmod(tcp) -struct tcb *tcp; +static int +decode_chmod(struct tcb *tcp, int offset) { if (entering(tcp)) { - printpath(tcp, tcp->u_arg[0]); - tprintf(", %#lo", tcp->u_arg[1]); + printpath(tcp, tcp->u_arg[offset]); + tprintf(", %#lo", tcp->u_arg[offset + 1]); } return 0; } +int +sys_chmod(struct tcb *tcp) +{ + return decode_chmod(tcp, 0); +} + +#ifdef LINUX +int +sys_fchmodat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_chmod(tcp, 1); +} +#endif + int sys_fchmod(tcp) struct tcb *tcp; @@ -1857,18 +2060,33 @@ struct tcb *tcp; } #endif -int -sys_utimes(tcp) -struct tcb *tcp; +static int +decode_utimes(struct tcb *tcp, int offset) { if (entering(tcp)) { - printpath(tcp, tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[offset]); tprintf(", "); - printtv(tcp, tcp->u_arg[1]); + printtv(tcp, tcp->u_arg[offset + 1]); } return 0; } +int +sys_utimes(struct tcb *tcp) +{ + return decode_utimes(tcp, 0); +} + +#ifdef LINUX +int +sys_futimesat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_utimes(tcp, 1); +} +#endif + int sys_utime(tcp) struct tcb *tcp; @@ -1893,27 +2111,26 @@ struct tcb *tcp; return 0; } -int -sys_mknod(tcp) -struct tcb *tcp; +static int +decode_mknod(struct tcb *tcp, int offset) { - int mode = tcp->u_arg[1]; + int mode = tcp->u_arg[offset + 1]; if (entering(tcp)) { - printpath(tcp, tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[offset]); tprintf(", %s", sprintmode(mode)); switch (mode & S_IFMT) { case S_IFCHR: case S_IFBLK: #ifdef LINUXSPARC if (current_personality == 1) tprintf(", makedev(%lu, %lu)", - (unsigned long) ((tcp->u_arg[2] >> 18) & 0x3fff), - (unsigned long) (tcp->u_arg[2] & 0x3ffff)); + (unsigned long) ((tcp->u_arg[offset + 2] >> 18) & 0x3fff), + (unsigned long) (tcp->u_arg[offset + 2] & 0x3ffff)); else #endif tprintf(", makedev(%lu, %lu)", - (unsigned long) major(tcp->u_arg[2]), - (unsigned long) minor(tcp->u_arg[2])); + (unsigned long) major(tcp->u_arg[offset + 2]), + (unsigned long) minor(tcp->u_arg[offset + 2])); break; default: break; @@ -1922,6 +2139,22 @@ struct tcb *tcp; return 0; } +int +sys_mknod(struct tcb *tcp) +{ + return decode_mknod(tcp, 0); +} + +#ifdef LINUX +int +sys_mknodat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_mknod(tcp, 1); +} +#endif + int sys_mkfifo(tcp) struct tcb *tcp; @@ -2529,3 +2762,49 @@ struct tcb *tcp; } return 0; } + +#ifdef LINUX +static const struct xlat inotify_modes[] = { + { 0x00000001, "IN_ACCESS" }, + { 0x00000002, "IN_MODIFY" }, + { 0x00000004, "IN_ATTRIB" }, + { 0x00000008, "IN_CLOSE_WRITE" }, + { 0x00000010, "IN_CLOSE_NOWRITE" }, + { 0x00000020, "IN_OPEN" }, + { 0x00000040, "IN_MOVED_FROM" }, + { 0x00000080, "IN_MOVED_TO" }, + { 0x00000100, "IN_CREATE" }, + { 0x00000200, "IN_DELETE" }, + { 0x00000400, "IN_DELETE_SELF" }, + { 0x00000800, "IN_MOVE_SELF" }, + { 0x00002000, "IN_UNMOUNT" }, + { 0x00004000, "IN_Q_OVERFLOW" }, + { 0x00008000, "IN_IGNORED" }, + { 0x01000000, "IN_ONLYDIR" }, + { 0x02000000, "IN_DONT_FOLLOW" }, + { 0x20000000, "IN_MASK_ADD" }, + { 0x40000000, "IN_ISDIR" }, + { 0x80000000, "IN_ONESHOT" } +}; + +int +sys_inotify_add_watch(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + printflags(inotify_modes, tcp->u_arg[2], "IN_???"); + } + return 0; +} + +int +sys_inotify_rm_watch(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]); + } + return 0; +} +#endif diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index 4eb81794..9278c371 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -467,3 +467,11 @@ { 2, 0, sys_mq_notify, "mq_notify" }, /* 436 */ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 437 */ { 4, 0, printargs, "waitid" }, /* 438 */ + { 5, 0, printargs, "add_key" }, /* 439 */ + { 4, 0, printargs, "request_key" }, /* 440 */ + { 5, 0, printargs, "keyctl" }, /* 441 */ + { 3, 0, printargs, "ioprio_set" }, /* 442 */ + { 2, 0, printargs, "ioprio_get" }, /* 443 */ + { 0, TD, printargs, "inotify_init" }, /* 444 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 445 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 446 */ diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index e23e1a32..352f45e1 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -268,35 +268,35 @@ { 5, 0, printargs, "mbind" }, /* 260 */ { 5, 0, printargs, "get_mempolicy" }, /* 261 */ { 5, 0, printargs, "set_mempolicy" }, /* 262 */ - { 5, 0, printargs, "SYS_263" }, /* 263 */ - { 5, 0, printargs, "SYS_264" }, /* 264 */ - { 5, 0, printargs, "SYS_265" }, /* 265 */ - { 5, 0, printargs, "SYS_266" }, /* 266 */ - { 5, 0, printargs, "SYS_267" }, /* 267 */ - { 5, 0, printargs, "SYS_268" }, /* 268 */ - { 5, 0, printargs, "SYS_269" }, /* 269 */ - { 5, 0, printargs, "SYS_270" }, /* 270 */ - { 5, 0, printargs, "SYS_271" }, /* 271 */ - { 5, 0, printargs, "SYS_272" }, /* 272 */ - { 5, 0, printargs, "SYS_273" }, /* 273 */ - { 5, 0, printargs, "SYS_274" }, /* 274 */ - { 5, 0, printargs, "SYS_275" }, /* 275 */ - { 5, 0, printargs, "SYS_276" }, /* 276 */ - { 5, 0, printargs, "SYS_277" }, /* 277 */ - { 5, 0, printargs, "SYS_278" }, /* 278 */ - { 5, 0, printargs, "SYS_279" }, /* 279 */ - { 5, 0, printargs, "SYS_280" }, /* 280 */ - { 5, 0, printargs, "SYS_281" }, /* 281 */ - { 5, 0, printargs, "SYS_282" }, /* 282 */ - { 5, 0, printargs, "SYS_283" }, /* 283 */ - { 5, 0, printargs, "SYS_284" }, /* 284 */ - { 5, 0, printargs, "SYS_285" }, /* 285 */ - { 5, 0, printargs, "SYS_286" }, /* 286 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ + { 5, 0, printargs, "vserver" }, /* 263 */ + { 5, 0, printargs, "add_key" }, /* 264 */ + { 4, 0, printargs, "request_key" }, /* 265 */ + { 5, 0, printargs, "keyctl" }, /* 266 */ + { 3, 0, printargs, "ioprio_set" }, /* 267 */ + { 2, 0, printargs, "ioprio_get" }, /* 268 */ + { 0, TD, printargs, "inotify_init" }, /* 269 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 270 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 271 */ + { 4, 0, printargs, "migrate_pages" }, /* 272 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 273 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 274 */ + { 4, TD|TF, sys_openat, "openat" }, /* 275 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 276 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 277 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 278 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 279 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 280 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 281 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 282 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 283 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 284 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 285 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 286 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 287 */ + { 1, TP, sys_unshare, "unshare" }, /* 288 */ + { 2, 0, printargs, "set_robust_list" }, /* 289 */ + { 3, 0, printargs, "get_robust_list" }, /* 290 */ + { 6, TD, printargs, "splice" }, /* 291 */ + { 4, TD, printargs, "sync_file_range" }, /* 292 */ + { 4, TD, printargs, "tee" }, /* 293 */ + { 4, TD, printargs, "vmsplice" }, /* 294 */ diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index 006e64df..f47d619c 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -246,106 +246,6 @@ starts where that one leaves off. */ - { 8, 0, printargs, "SYS_343" }, /* 343 */ - { 8, 0, printargs, "SYS_344" }, /* 344 */ - { 8, 0, printargs, "SYS_345" }, /* 345 */ - { 8, 0, printargs, "SYS_346" }, /* 346 */ - { 8, 0, printargs, "SYS_347" }, /* 347 */ - { 8, 0, printargs, "SYS_348" }, /* 348 */ - { 8, 0, printargs, "SYS_349" }, /* 349 */ - { 8, 0, printargs, "SYS_350" }, /* 350 */ - { 8, 0, printargs, "SYS_351" }, /* 351 */ - { 8, 0, printargs, "SYS_352" }, /* 352 */ - { 8, 0, printargs, "SYS_353" }, /* 353 */ - { 8, 0, printargs, "SYS_354" }, /* 354 */ - { 8, 0, printargs, "SYS_355" }, /* 355 */ - { 8, 0, printargs, "SYS_356" }, /* 356 */ - { 8, 0, printargs, "SYS_357" }, /* 357 */ - { 8, 0, printargs, "SYS_358" }, /* 358 */ - { 8, 0, printargs, "SYS_359" }, /* 359 */ - { 8, 0, printargs, "SYS_360" }, /* 360 */ - { 8, 0, printargs, "SYS_361" }, /* 361 */ - { 8, 0, printargs, "SYS_362" }, /* 362 */ - { 8, 0, printargs, "SYS_363" }, /* 363 */ - { 8, 0, printargs, "SYS_364" }, /* 364 */ - { 8, 0, printargs, "SYS_365" }, /* 365 */ - { 8, 0, printargs, "SYS_366" }, /* 366 */ - { 8, 0, printargs, "SYS_367" }, /* 367 */ - { 8, 0, printargs, "SYS_368" }, /* 368 */ - { 8, 0, printargs, "SYS_369" }, /* 369 */ - { 8, 0, printargs, "SYS_370" }, /* 370 */ - { 8, 0, printargs, "SYS_371" }, /* 371 */ - { 8, 0, printargs, "SYS_372" }, /* 372 */ - { 8, 0, printargs, "SYS_373" }, /* 373 */ - { 8, 0, printargs, "SYS_374" }, /* 374 */ - { 8, 0, printargs, "SYS_375" }, /* 375 */ - { 8, 0, printargs, "SYS_376" }, /* 376 */ - { 8, 0, printargs, "SYS_377" }, /* 377 */ - { 8, 0, printargs, "SYS_378" }, /* 378 */ - { 8, 0, printargs, "SYS_379" }, /* 379 */ - { 8, 0, printargs, "SYS_380" }, /* 380 */ - { 8, 0, printargs, "SYS_381" }, /* 381 */ - { 8, 0, printargs, "SYS_382" }, /* 382 */ - { 8, 0, printargs, "SYS_383" }, /* 383 */ - { 8, 0, printargs, "SYS_384" }, /* 384 */ - { 8, 0, printargs, "SYS_385" }, /* 385 */ - { 8, 0, printargs, "SYS_386" }, /* 386 */ - { 8, 0, printargs, "SYS_387" }, /* 387 */ - { 8, 0, printargs, "SYS_388" }, /* 388 */ - { 8, 0, printargs, "SYS_389" }, /* 389 */ - { 8, 0, printargs, "SYS_390" }, /* 390 */ - { 8, 0, printargs, "SYS_391" }, /* 391 */ - { 8, 0, printargs, "SYS_392" }, /* 392 */ - { 8, 0, printargs, "SYS_393" }, /* 393 */ - { 8, 0, printargs, "SYS_394" }, /* 394 */ - { 8, 0, printargs, "SYS_395" }, /* 395 */ - { 8, 0, printargs, "SYS_396" }, /* 396 */ - { 8, 0, printargs, "SYS_397" }, /* 397 */ - { 8, 0, printargs, "SYS_398" }, /* 398 */ - { 8, 0, printargs, "SYS_399" }, /* 399 */ - { 8, 0, printargs, "SYS_400" }, /* 400 */ - { 8, 0, printargs, "SYS_401" }, /* 401 */ - { 8, 0, printargs, "SYS_402" }, /* 402 */ - { 8, 0, printargs, "SYS_403" }, /* 403 */ - { 8, 0, printargs, "SYS_404" }, /* 404 */ - { 8, 0, printargs, "SYS_405" }, /* 405 */ - { 8, 0, printargs, "SYS_406" }, /* 406 */ - { 8, 0, printargs, "SYS_407" }, /* 407 */ - { 8, 0, printargs, "SYS_408" }, /* 408 */ - { 8, 0, printargs, "SYS_409" }, /* 409 */ - { 8, 0, printargs, "SYS_410" }, /* 410 */ - { 8, 0, printargs, "SYS_411" }, /* 411 */ - { 8, 0, printargs, "SYS_412" }, /* 412 */ - { 8, 0, printargs, "SYS_413" }, /* 413 */ - { 8, 0, printargs, "SYS_414" }, /* 414 */ - { 8, 0, printargs, "SYS_415" }, /* 415 */ - { 8, 0, printargs, "SYS_416" }, /* 416 */ - { 8, 0, printargs, "SYS_417" }, /* 417 */ - { 8, 0, printargs, "SYS_418" }, /* 418 */ - { 8, 0, printargs, "SYS_419" }, /* 419 */ - { 8, 0, printargs, "SYS_420" }, /* 420 */ - { 8, 0, printargs, "SYS_421" }, /* 421 */ - { 8, 0, printargs, "SYS_422" }, /* 422 */ - { 8, 0, printargs, "SYS_423" }, /* 423 */ - { 8, 0, printargs, "SYS_424" }, /* 424 */ - { 8, 0, printargs, "SYS_425" }, /* 425 */ - { 8, 0, printargs, "SYS_426" }, /* 426 */ - { 8, 0, printargs, "SYS_427" }, /* 427 */ - { 8, 0, printargs, "SYS_428" }, /* 428 */ - { 8, 0, printargs, "SYS_429" }, /* 429 */ - { 8, 0, printargs, "SYS_430" }, /* 430 */ - { 8, 0, printargs, "SYS_431" }, /* 431 */ - { 8, 0, printargs, "SYS_432" }, /* 432 */ - { 8, 0, printargs, "SYS_433" }, /* 433 */ - { 8, 0, printargs, "SYS_434" }, /* 434 */ - { 8, 0, printargs, "SYS_435" }, /* 435 */ - { 8, 0, printargs, "SYS_436" }, /* 436 */ - { 8, 0, printargs, "SYS_437" }, /* 437 */ - { 8, 0, printargs, "SYS_438" }, /* 438 */ - { 8, 0, printargs, "SYS_439" }, /* 439 */ - { 8, 0, printargs, "SYS_440" }, /* 440 */ - { 8, 0, printargs, "SYS_441" }, /* 441 */ - { 8, 0, printargs, "SYS_442" }, /* 442 */ { 8, 0, printargs, "SYS_443" }, /* 443 */ { 8, 0, printargs, "SYS_444" }, /* 444 */ { 8, 0, printargs, "SYS_445" }, /* 445 */ @@ -1174,38 +1074,38 @@ { 5, 0, printargs, "sys_kexec_load" }, /* 1268 */ { 5, 0, printargs, "vserver" }, /* 1269 */ { 5, TP, sys_waitid, "waitid" }, /* 1270 */ - { 8, 0, printargs, "SYS_1271" }, /* 1271 */ - { 8, 0, printargs, "SYS_1272" }, /* 1272 */ - { 8, 0, printargs, "SYS_1273" }, /* 1273 */ - { 8, 0, printargs, "SYS_1274" }, /* 1274 */ - { 8, 0, printargs, "SYS_1275" }, /* 1275 */ + { 5, 0, printargs, "add_key" }, /* 1271 */ + { 4, 0, printargs, "request_key" }, /* 1272 */ + { 5, 0, printargs, "keyctl" }, /* 1273 */ + { 3, 0, printargs, "ioprio_set" }, /* 1274 */ + { 2, 0, printargs, "ioprio_get" }, /* 1275 */ { 8, 0, printargs, "SYS_1276" }, /* 1276 */ - { 8, 0, printargs, "SYS_1277" }, /* 1277 */ - { 8, 0, printargs, "SYS_1278" }, /* 1278 */ - { 8, 0, printargs, "SYS_1279" }, /* 1279 */ - { 8, 0, printargs, "SYS_1280" }, /* 1280 */ - { 8, 0, printargs, "SYS_1281" }, /* 1281 */ - { 8, 0, printargs, "SYS_1282" }, /* 1282 */ - { 8, 0, printargs, "SYS_1283" }, /* 1283 */ - { 8, 0, printargs, "SYS_1284" }, /* 1284 */ - { 8, 0, printargs, "SYS_1285" }, /* 1285 */ - { 8, 0, printargs, "SYS_1286" }, /* 1286 */ - { 8, 0, printargs, "SYS_1287" }, /* 1287 */ - { 8, 0, printargs, "SYS_1288" }, /* 1288 */ - { 8, 0, printargs, "SYS_1289" }, /* 1289 */ - { 8, 0, printargs, "SYS_1290" }, /* 1290 */ - { 8, 0, printargs, "SYS_1291" }, /* 1291 */ - { 8, 0, printargs, "SYS_1292" }, /* 1292 */ - { 8, 0, printargs, "SYS_1293" }, /* 1293 */ - { 8, 0, printargs, "SYS_1294" }, /* 1294 */ - { 8, 0, printargs, "SYS_1295" }, /* 1295 */ - { 8, 0, printargs, "SYS_1296" }, /* 1296 */ - { 8, 0, printargs, "SYS_1297" }, /* 1297 */ - { 8, 0, printargs, "SYS_1298" }, /* 1298 */ - { 8, 0, printargs, "SYS_1299" }, /* 1299 */ - { 8, 0, printargs, "SYS_1300" }, /* 1300 */ - { 8, 0, printargs, "SYS_1301" }, /* 1301 */ - { 8, 0, printargs, "SYS_1302" }, /* 1302 */ + { 0, TD, printargs, "inotify_init" }, /* 1277 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 1278 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 1279 */ + { 4, 0, printargs, "migrate_pages" }, /* 1280 */ + { 4, TD|TF, sys_openat, "openat" }, /* 1281 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 1282 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 1283 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 1284 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 1285 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 1286 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 1287 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 1288 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 1289 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 1290 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 1291 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 1292 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 1293 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 1294 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 1295 */ + { 1, TP, sys_unshare, "unshare" }, /* 1296 */ + { 2, 0, printargs, "set_robust_list" }, /* 1297 */ + { 3, 0, printargs, "get_robust_list" }, /* 1298 */ + { 6, TD, printargs, "splice" }, /* 1299 */ + { 4, TD, printargs, "sync_file_range" }, /* 1300 */ + { 4, TD, printargs, "tee" }, /* 1301 */ + { 4, TD, printargs, "vmsplice" }, /* 1302 */ { 8, 0, printargs, "SYS_1303" }, /* 1303 */ { 8, 0, printargs, "SYS_1304" }, /* 1304 */ { 8, 0, printargs, "SYS_1305" }, /* 1305 */ diff --git a/linux/mips/syscallent.h b/linux/mips/syscallent.h index bd1dc133..5c3d2550 100644 --- a/linux/mips/syscallent.h +++ b/linux/mips/syscallent.h @@ -4281,29 +4281,29 @@ { 5, 0, printargs, "add_key" }, /* 4280 */ { 4, 0, printargs, "request_key" }, /* 4281 */ { 5, 0, printargs, "keyctl" }, /* 4282 */ - { 0, 0, printargs, "SYS_4283" }, /* 4283 */ - { 0, 0, printargs, "SYS_4284" }, /* 4284 */ - { 0, 0, printargs, "SYS_4285" }, /* 4285 */ - { 0, 0, printargs, "SYS_4286" }, /* 4286 */ - { 0, 0, printargs, "SYS_4287" }, /* 4287 */ - { 0, 0, printargs, "SYS_4288" }, /* 4288 */ - { 0, 0, printargs, "SYS_4289" }, /* 4289 */ - { 0, 0, printargs, "SYS_4290" }, /* 4290 */ - { 0, 0, printargs, "SYS_4291" }, /* 4291 */ - { 0, 0, printargs, "SYS_4292" }, /* 4292 */ - { 0, 0, printargs, "SYS_4293" }, /* 4293 */ - { 0, 0, printargs, "SYS_4294" }, /* 4294 */ - { 0, 0, printargs, "SYS_4295" }, /* 4295 */ - { 0, 0, printargs, "SYS_4296" }, /* 4296 */ - { 0, 0, printargs, "SYS_4297" }, /* 4297 */ - { 0, 0, printargs, "SYS_4298" }, /* 4298 */ - { 0, 0, printargs, "SYS_4299" }, /* 4299 */ - { 0, 0, printargs, "SYS_4300" }, /* 4300 */ - { 0, 0, printargs, "SYS_4301" }, /* 4301 */ - { 0, 0, printargs, "SYS_4302" }, /* 4302 */ - { 0, 0, printargs, "SYS_4303" }, /* 4303 */ - { 0, 0, printargs, "SYS_4304" }, /* 4304 */ - { 0, 0, printargs, "SYS_4305" }, /* 4305 */ + { 1, 0, sys_set_thread_area, "set_thread_area" }, /* 4283 */ + { 0, TD, printargs, "inotify_init" }, /* 4284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 4285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 4286 */ + { 4, 0, printargs, "migrate_pages" }, /* 4287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 4288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 4289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 4290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 4291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 4292 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 4293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 4294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 4295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 4296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 4297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 4298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 4299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 4300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 4301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 4302 */ + { 1, TP, sys_unshare, "unshare" }, /* 4303 */ + { 6, TD, printargs, "splice" }, /* 4304 */ + { 4, TD, printargs, "sync_file_range" }, /* 4305 */ { 0, 0, printargs, "SYS_4306" }, /* 4306 */ { 0, 0, printargs, "SYS_4307" }, /* 4307 */ { 0, 0, printargs, "SYS_4308" }, /* 4308 */ diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index ebe8f2f1..a2de2609 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -302,33 +302,34 @@ { 5, 0, printargs, "request_key" }, /* 270 */ { 5, 0, printargs, "keyctl" }, /* 271 */ { 5, TP, sys_waitid, "waitid" }, /* 272 */ - { 5, 0, printargs, "SYS_273" }, /* 273 */ - { 5, 0, printargs, "SYS_274" }, /* 274 */ - { 5, 0, printargs, "SYS_275" }, /* 275 */ - { 5, 0, printargs, "SYS_276" }, /* 276 */ - { 5, 0, printargs, "SYS_277" }, /* 277 */ - { 5, 0, printargs, "SYS_278" }, /* 278 */ - { 5, 0, printargs, "SYS_279" }, /* 279 */ - { 5, 0, printargs, "SYS_280" }, /* 280 */ - { 5, 0, printargs, "SYS_281" }, /* 281 */ - { 5, 0, printargs, "SYS_282" }, /* 282 */ - { 5, 0, printargs, "SYS_283" }, /* 283 */ - { 5, 0, printargs, "SYS_284" }, /* 284 */ - { 5, 0, printargs, "SYS_285" }, /* 285 */ - { 5, 0, printargs, "SYS_286" }, /* 286 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ - { 5, 0, printargs, "SYS_295" }, /* 295 */ - { 5, 0, printargs, "SYS_296" }, /* 296 */ - { 5, 0, printargs, "SYS_297" }, /* 297 */ - { 5, 0, printargs, "SYS_298" }, /* 298 */ - { 5, 0, printargs, "SYS_299" }, /* 299 */ { 5, 0, printargs, "SYS_300" }, /* 300 */ + { 3, 0, printargs, "ioprio_set" }, /* 273 */ + { 2, 0, printargs, "ioprio_get" }, /* 274 */ + { 0, TD, printargs, "inotify_init" }, /* 275 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 276 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 277 */ + { 5, 0, printargs, "spu_run" }, /* 278 */ + { 5, 0, printargs, "spu_create" }, /* 279 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 280 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 281 */ + { 1, TP, sys_unshare, "unshare" }, /* 282 */ + { 6, TD, printargs, "splice" }, /* 283 */ + { 4, TD, printargs, "tee" }, /* 284 */ + { 4, TD, printargs, "vmsplice" }, /* 285 */ + { 4, TD|TF, sys_openat, "openat" }, /* 286 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 287 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 288 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 289 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 290 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 291 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 292 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 293 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 294 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 295 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 296 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 297 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 298 */ + { 2, 0, printargs, "set_robust_list" }, /* 299 */ + { 3, 0, printargs, "get_robust_list" }, /* 300 */ { 5, 0, printargs, "SYS_301" }, /* 301 */ { 5, 0, printargs, "SYS_302" }, /* 302 */ { 5, 0, printargs, "SYS_303" }, /* 303 */ diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h index 51b2b9d8..68ac10e8 100644 --- a/linux/s390/syscallent.h +++ b/linux/s390/syscallent.h @@ -312,33 +312,33 @@ { 5, TP, sys_waitid, "waitid" }, /* 281 */ { 3, 0, printargs, "ioprio_set" }, /* 282 */ { 2, 0, printargs, "ioprio_get" }, /* 283 */ - { 0, 0, printargs, "inotify_init" }, /* 284 */ - { 3, 0, printargs, "inotify_add_watch" }, /* 285 */ - { 2, 0, printargs, "inotify_rm_watch" }, /* 286 */ + { 0, TD, printargs, "inotify_init" }, /* 284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 286 */ + { 4, 0, printargs, "migrate_pages" }, /* 287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 292 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 302 */ + { 1, TP, sys_unshare, "unshare" }, /* 303 */ + { 2, 0, printargs, "set_robust_list" }, /* 304 */ + { 3, 0, printargs, "get_robust_list" }, /* 305 */ + { 6, TD, printargs, "splice" }, /* 306 */ + { 4, TD, printargs, "sync_file_range" }, /* 307 */ + { 4, TD, printargs, "tee" }, /* 308 */ + { 4, TD, printargs, "vmsplice" }, /* 309 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ - { 5, 0, printargs, "SYS_295" }, /* 295 */ - { 5, 0, printargs, "SYS_296" }, /* 296 */ - { 5, 0, printargs, "SYS_297" }, /* 297 */ - { 5, 0, printargs, "SYS_298" }, /* 298 */ - { 5, 0, printargs, "SYS_299" }, /* 299 */ - { 5, 0, printargs, "SYS_300" }, /* 300 */ - { 5, 0, printargs, "SYS_301" }, /* 301 */ - { 5, 0, printargs, "SYS_302" }, /* 302 */ - { 5, 0, printargs, "SYS_303" }, /* 303 */ - { 5, 0, printargs, "SYS_304" }, /* 304 */ - { 5, 0, printargs, "SYS_305" }, /* 305 */ - { 5, 0, printargs, "SYS_306" }, /* 306 */ - { 5, 0, printargs, "SYS_307" }, /* 307 */ - { 5, 0, printargs, "SYS_308" }, /* 308 */ - { 5, 0, printargs, "SYS_309" }, /* 309 */ { 5, 0, printargs, "SYS_310" }, /* 310 */ { 5, 0, printargs, "SYS_311" }, /* 311 */ { 5, 0, printargs, "SYS_312" }, /* 312 */ diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h index 58f8e718..41ed9845 100644 --- a/linux/s390x/syscallent.h +++ b/linux/s390x/syscallent.h @@ -311,33 +311,33 @@ { 5, TP, sys_waitid, "waitid" }, /* 281 */ { 3, 0, printargs, "ioprio_set" }, /* 282 */ { 2, 0, printargs, "ioprio_get" }, /* 283 */ - { 0, 0, printargs, "inotify_init" }, /* 284 */ - { 3, 0, printargs, "inotify_add_watch" }, /* 285 */ - { 2, 0, printargs, "inotify_rm_watch" }, /* 286 */ + { 0, TD, printargs, "inotify_init" }, /* 284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 286 */ + { 4, 0, printargs, "migrate_pages" }, /* 287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 292 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 302 */ + { 1, TP, sys_unshare, "unshare" }, /* 303 */ + { 2, 0, printargs, "set_robust_list" }, /* 304 */ + { 3, 0, printargs, "get_robust_list" }, /* 305 */ + { 6, TD, printargs, "splice" }, /* 306 */ + { 4, TD, printargs, "sync_file_range" }, /* 307 */ + { 4, TD, printargs, "tee" }, /* 308 */ + { 4, TD, printargs, "vmsplice" }, /* 309 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ - { 5, 0, printargs, "SYS_295" }, /* 295 */ - { 5, 0, printargs, "SYS_296" }, /* 296 */ - { 5, 0, printargs, "SYS_297" }, /* 297 */ - { 5, 0, printargs, "SYS_298" }, /* 298 */ - { 5, 0, printargs, "SYS_299" }, /* 299 */ - { 5, 0, printargs, "SYS_300" }, /* 300 */ - { 5, 0, printargs, "SYS_301" }, /* 301 */ - { 5, 0, printargs, "SYS_302" }, /* 302 */ - { 5, 0, printargs, "SYS_303" }, /* 303 */ - { 5, 0, printargs, "SYS_304" }, /* 304 */ - { 5, 0, printargs, "SYS_305" }, /* 305 */ - { 5, 0, printargs, "SYS_306" }, /* 306 */ - { 5, 0, printargs, "SYS_307" }, /* 307 */ - { 5, 0, printargs, "SYS_308" }, /* 308 */ - { 5, 0, printargs, "SYS_309" }, /* 309 */ { 5, 0, printargs, "SYS_310" }, /* 310 */ { 5, 0, printargs, "SYS_311" }, /* 311 */ { 5, 0, printargs, "SYS_312" }, /* 312 */ diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index 712cca9b..005c82fb 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -1,4 +1,4 @@ - { 01, 0, sys_restart_syscall,"restart_syscall" },/* 0 */ + { 0, 0, sys_restart_syscall, "restart_syscall" },/* 0 */ { 1, TP, sys_exit, "exit" }, /* 1 */ { 0, TP, sys_fork, "fork" }, /* 2 */ { 3, TD, sys_read, "read" }, /* 3 */ @@ -266,40 +266,40 @@ { 1, 0, sys_timer_delete,"timer_delete" }, /* 265 */ { 3, 0, sys_timer_create,"timer_create" }, /* 266 */ { 5, 0, printargs, "SYS_267" }, /* 267 */ - { 5, 0, printargs, "SYS_268" }, /* 268 */ - { 5, 0, printargs, "SYS_269" }, /* 269 */ - { 5, 0, printargs, "SYS_270" }, /* 270 */ - { 5, 0, printargs, "SYS_271" }, /* 271 */ - { 5, 0, printargs, "SYS_272" }, /* 272 */ - { 5, 0, printargs, "SYS_273" }, /* 273 */ - { 5, 0, printargs, "SYS_274" }, /* 274 */ - { 5, 0, printargs, "SYS_275" }, /* 275 */ - { 5, 0, printargs, "SYS_276" }, /* 276 */ - { 5, 0, printargs, "SYS_277" }, /* 277 */ - { 5, 0, printargs, "SYS_278" }, /* 278 */ - { 5, 0, printargs, "SYS_279" }, /* 279 */ - { 5, 0, printargs, "SYS_280" }, /* 280 */ - { 5, 0, printargs, "SYS_281" }, /* 281 */ - { 5, 0, printargs, "SYS_282" }, /* 282 */ - { 5, 0, printargs, "SYS_283" }, /* 283 */ - { 5, 0, printargs, "SYS_284" }, /* 284 */ - { 5, 0, printargs, "SYS_285" }, /* 285 */ - { 5, 0, printargs, "SYS_286" }, /* 286 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ - { 5, 0, printargs, "SYS_295" }, /* 295 */ - { 5, 0, printargs, "SYS_296" }, /* 296 */ - { 5, 0, printargs, "SYS_297" }, /* 297 */ - { 5, 0, printargs, "SYS_298" }, /* 298 */ - { 5, 0, printargs, "SYS_299" }, /* 299 */ - { 5, 0, printargs, "SYS_300" }, /* 300 */ - { 5, 0, printargs, "SYS_301" }, /* 301 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 268 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 269 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 270 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 271 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 272 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 273 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 274 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 275 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 276 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 277 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 278 */ + { 5, TP, sys_waitid, "waitid" }, /* 279 */ + { 4, TD, printargs, "tee" }, /* 280 */ + { 5, 0, printargs, "add_key" }, /* 281 */ + { 4, 0, printargs, "request_key" }, /* 282 */ + { 5, 0, printargs, "keyctl" }, /* 283 */ + { 4, TD|TF, sys_openat, "openat" }, /* 284 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 285 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 286 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 287 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 288 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 289 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 290 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 291 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 292 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 293 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 294 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 295 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 296 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 297 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 298 */ + { 1, TP, sys_unshare, "unshare" }, /* 299 */ + { 2, 0, printargs, "set_robust_list" }, /* 300 */ + { 3, 0, printargs, "get_robust_list" }, /* 301 */ { 5, 0, printargs, "SYS_302" }, /* 302 */ { 5, 0, printargs, "SYS_303" }, /* 303 */ { 5, 0, printargs, "SYS_304" }, /* 304 */ diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h index 5b14c0c2..005c82fb 100644 --- a/linux/sparc64/syscallent.h +++ b/linux/sparc64/syscallent.h @@ -266,40 +266,40 @@ { 1, 0, sys_timer_delete,"timer_delete" }, /* 265 */ { 3, 0, sys_timer_create,"timer_create" }, /* 266 */ { 5, 0, printargs, "SYS_267" }, /* 267 */ - { 5, 0, printargs, "SYS_268" }, /* 268 */ - { 5, 0, printargs, "SYS_269" }, /* 269 */ - { 5, 0, printargs, "SYS_270" }, /* 270 */ - { 5, 0, printargs, "SYS_271" }, /* 271 */ - { 5, 0, printargs, "SYS_272" }, /* 272 */ - { 5, 0, printargs, "SYS_273" }, /* 273 */ - { 5, 0, printargs, "SYS_274" }, /* 274 */ - { 5, 0, printargs, "SYS_275" }, /* 275 */ - { 5, 0, printargs, "SYS_276" }, /* 276 */ - { 5, 0, printargs, "SYS_277" }, /* 277 */ - { 5, 0, printargs, "SYS_278" }, /* 278 */ - { 5, 0, printargs, "SYS_279" }, /* 279 */ - { 5, 0, printargs, "SYS_280" }, /* 280 */ - { 5, 0, printargs, "SYS_281" }, /* 281 */ - { 5, 0, printargs, "SYS_282" }, /* 282 */ - { 5, 0, printargs, "SYS_283" }, /* 283 */ - { 5, 0, printargs, "SYS_284" }, /* 284 */ - { 5, 0, printargs, "SYS_285" }, /* 285 */ - { 5, 0, printargs, "SYS_286" }, /* 286 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ - { 5, 0, printargs, "SYS_295" }, /* 295 */ - { 5, 0, printargs, "SYS_296" }, /* 296 */ - { 5, 0, printargs, "SYS_297" }, /* 297 */ - { 5, 0, printargs, "SYS_298" }, /* 298 */ - { 5, 0, printargs, "SYS_299" }, /* 299 */ - { 5, 0, printargs, "SYS_300" }, /* 300 */ - { 5, 0, printargs, "SYS_301" }, /* 301 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 268 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 269 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 270 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 271 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 272 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 273 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 274 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 275 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 276 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 277 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 278 */ + { 5, TP, sys_waitid, "waitid" }, /* 279 */ + { 4, TD, printargs, "tee" }, /* 280 */ + { 5, 0, printargs, "add_key" }, /* 281 */ + { 4, 0, printargs, "request_key" }, /* 282 */ + { 5, 0, printargs, "keyctl" }, /* 283 */ + { 4, TD|TF, sys_openat, "openat" }, /* 284 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 285 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 286 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 287 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 288 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 289 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 290 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 291 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 292 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 293 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 294 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 295 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 296 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 297 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 298 */ + { 1, TP, sys_unshare, "unshare" }, /* 299 */ + { 2, 0, printargs, "set_robust_list" }, /* 300 */ + { 3, 0, printargs, "get_robust_list" }, /* 301 */ { 5, 0, printargs, "SYS_302" }, /* 302 */ { 5, 0, printargs, "SYS_303" }, /* 303 */ { 5, 0, printargs, "SYS_304" }, /* 304 */ diff --git a/linux/syscall.h b/linux/syscall.h index f32644cd..18984b22 100644 --- a/linux/syscall.h +++ b/linux/syscall.h @@ -110,10 +110,30 @@ int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair(); int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom(); int sys_shutdown(), sys_setsockopt(), sys_getsockopt(); +/* *at syscalls */ +int sys_fchmodat(); +int sys_newfstatat(); +int sys_unlinkat(); +int sys_fchownat(); +int sys_openat(); +int sys_renameat(); +int sys_symlinkat(); +int sys_readlinkat(); +int sys_linkat(); +int sys_faccessat(); +int sys_mkdirat(); +int sys_mknodat(); +int sys_futimesat(); + /* new ones */ int sys_query_module(); int sys_poll(); int sys_mincore(); +int sys_inotify_add_watch(); +int sys_inotify_rm_watch(); +int sys_pselect6(); +int sys_ppoll(); +int sys_unshare(); /* architecture-specific calls */ #ifdef ALPHA diff --git a/linux/syscallent.h b/linux/syscallent.h index 1634e6d8..ff20d758 100644 --- a/linux/syscallent.h +++ b/linux/syscallent.h @@ -316,37 +316,37 @@ { 5, 0, printargs, "sys_kexec_load" }, /* 283 */ { 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 284 */ { 5, 0, printargs, "SYS_285" }, /* 285 */ - { 5, 0, printargs, "SYS_286" }, /* 286 */ - { 5, 0, printargs, "SYS_287" }, /* 287 */ - { 5, 0, printargs, "SYS_288" }, /* 288 */ - { 5, 0, printargs, "SYS_289" }, /* 289 */ - { 5, 0, printargs, "SYS_290" }, /* 290 */ - { 5, 0, printargs, "SYS_291" }, /* 291 */ - { 5, 0, printargs, "SYS_292" }, /* 292 */ - { 5, 0, printargs, "SYS_293" }, /* 293 */ - { 5, 0, printargs, "SYS_294" }, /* 294 */ - { 5, 0, printargs, "SYS_295" }, /* 295 */ - { 5, 0, printargs, "SYS_296" }, /* 296 */ - { 5, 0, printargs, "SYS_297" }, /* 297 */ - { 5, 0, printargs, "SYS_298" }, /* 298 */ - { 5, 0, printargs, "SYS_299" }, /* 299 */ - { 5, 0, printargs, "SYS_300" }, /* 300 */ - { 5, 0, printargs, "SYS_301" }, /* 301 */ - { 5, 0, printargs, "SYS_302" }, /* 302 */ - { 5, 0, printargs, "SYS_303" }, /* 303 */ - { 5, 0, printargs, "SYS_304" }, /* 304 */ - { 5, 0, printargs, "SYS_305" }, /* 305 */ - { 5, 0, printargs, "SYS_306" }, /* 306 */ - { 5, 0, printargs, "SYS_307" }, /* 307 */ - { 5, 0, printargs, "SYS_308" }, /* 308 */ - { 5, 0, printargs, "SYS_309" }, /* 309 */ - { 5, 0, printargs, "SYS_310" }, /* 310 */ - { 5, 0, printargs, "SYS_311" }, /* 311 */ - { 5, 0, printargs, "SYS_312" }, /* 312 */ - { 5, 0, printargs, "SYS_313" }, /* 313 */ - { 5, 0, printargs, "SYS_314" }, /* 314 */ - { 5, 0, printargs, "SYS_315" }, /* 315 */ - { 5, 0, printargs, "SYS_316" }, /* 316 */ + { 5, 0, printargs, "add_key" }, /* 286 */ + { 4, 0, printargs, "request_key" }, /* 287 */ + { 5, 0, printargs, "keyctl" }, /* 288 */ + { 3, 0, printargs, "ioprio_set" }, /* 289 */ + { 2, 0, printargs, "ioprio_get" }, /* 290 */ + { 0, TD, printargs, "inotify_init" }, /* 291 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 292 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 293 */ + { 4, 0, printargs, "migrate_pages" }, /* 294 */ + { 4, TD|TF, sys_openat, "openat" }, /* 295 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 296 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 297 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 298 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 299 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 300 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 301 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 302 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 303 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 304 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 305 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 306 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 307 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 308 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 309 */ + { 1, TP, sys_unshare, "unshare" }, /* 310 */ + { 2, 0, printargs, "set_robust_list" }, /* 311 */ + { 3, 0, printargs, "get_robust_list" }, /* 312 */ + { 6, TD, printargs, "splice" }, /* 313 */ + { 4, TD, printargs, "sync_file_range" }, /* 314 */ + { 4, TD, printargs, "tee" }, /* 315 */ + { 4, TD, printargs, "vmsplice" }, /* 316 */ { 5, 0, printargs, "SYS_317" }, /* 317 */ { 5, 0, printargs, "SYS_318" }, /* 318 */ { 5, 0, printargs, "SYS_319" }, /* 319 */ diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index 1172c8af..3f701b6f 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -246,9 +246,34 @@ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 245 */ { 5, 0, printargs, "kexec_load" }, /* 246 */ { 5, TP, sys_waitid, "waitid" }, /* 247 */ - { 5, 0, printargs, "SYS_248" }, /* 248 */ - { 5, 0, printargs, "SYS_249" }, /* 249 */ - { 5, 0, printargs, "SYS_250" }, /* 250 */ - { 5, 0, printargs, "SYS_251" }, /* 251 */ - { 5, 0, printargs, "SYS_252" }, /* 252 */ - { 5, 0, printargs, "SYS_253" }, /* 253 */ + { 5, 0, printargs, "add_key" }, /* 248 */ + { 4, 0, printargs, "request_key" }, /* 249 */ + { 5, 0, printargs, "keyctl" }, /* 250 */ + { 3, 0, printargs, "ioprio_set" }, /* 251 */ + { 2, 0, printargs, "ioprio_get" }, /* 252 */ + { 0, TD, printargs, "inotify_init" }, /* 253 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 254 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 255 */ + { 4, 0, printargs, "migrate_pages" }, /* 256 */ + { 4, TD|TF, sys_openat, "openat" }, /* 257 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 258 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 259 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 260 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 261 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 262 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 263 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 264 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 265 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 266 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 267 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 268 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 269 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 270 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 271 */ + { 1, TP, sys_unshare, "unshare" }, /* 272 */ + { 2, 0, printargs, "set_robust_list" }, /* 273 */ + { 3, 0, printargs, "get_robust_list" }, /* 274 */ + { 6, TD, printargs, "splice" }, /* 275 */ + { 4, TD, printargs, "sync_file_range" }, /* 276 */ + { 4, TD, printargs, "tee" }, /* 277 */ + { 4, TD, printargs, "vmsplice" }, /* 278 */ diff --git a/process.c b/process.c index a0db041a..bea69a1b 100644 --- a/process.c +++ b/process.c @@ -605,6 +605,14 @@ struct tcb *tcp; } return 0; } + +int +sys_unshare(struct tcb *tcp) +{ + if (entering(tcp)) + printflags(clone_flags, tcp->u_arg[0], "CLONE_???"); + return 0; +} #endif int diff --git a/signal.c b/signal.c index 520562e1..fde89f28 100644 --- a/signal.c +++ b/signal.c @@ -395,6 +395,19 @@ int nr; tprintf(signame(nr)); } +void +print_sigset(struct tcb *tcp, long addr, int rt) +{ + sigset_t ss; + + if (!addr) + tprintf("NULL"); + else if (copy_sigset(tcp, addr, &ss) < 0) + tprintf("%#lx", addr); + else + printsigmask(&ss, rt); +} + #ifdef LINUX #ifndef ILL_ILLOPC @@ -1652,8 +1665,6 @@ struct tcb *tcp; return RVAL_HEX | RVAL_STR; } #else /* !ALPHA */ - sigset_t sigset; - if (entering(tcp)) { #ifdef SVR4 if (tcp->u_arg[0] == 0) @@ -1662,24 +1673,16 @@ struct tcb *tcp; #endif /* SVR4 */ printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???"); tprintf(", "); - if (!tcp->u_arg[1]) - tprintf("NULL, "); - else if (copy_sigset(tcp, tcp->u_arg[1], &sigset) < 0) - tprintf("%#lx, ", tcp->u_arg[1]); - else { - printsigmask(&sigset, 0); - tprintf(", "); - } + print_sigset(tcp, tcp->u_arg[1], 0); + tprintf(", "); } else { if (!tcp->u_arg[2]) tprintf("NULL"); else if (syserror(tcp)) tprintf("%#lx", tcp->u_arg[2]); - else if (copy_sigset(tcp, tcp->u_arg[2], &sigset) < 0) - tprintf("[?]"); else - printsigmask(&sigset, 0); + print_sigset(tcp, tcp->u_arg[2], 0); } #endif /* !ALPHA */ return 0; diff --git a/stream.c b/stream.c index f01fe999..eb72d622 100644 --- a/stream.c +++ b/stream.c @@ -294,9 +294,8 @@ static const struct xlat pollflags[] = { { 0, NULL }, }; -int -sys_poll(tcp) -struct tcb *tcp; +static int +decode_poll(struct tcb *tcp) { struct pollfd fds; unsigned nfds; @@ -311,8 +310,8 @@ struct tcb *tcp; start = tcp->u_arg[0]; end = start + size; if (nfds == 0 || size / sizeof(fds) != nfds || end < start) { - tprintf("%#lx, %d, %ld", - tcp->u_arg[0], nfds, tcp->u_arg[2]); + tprintf("%#lx, %d, ", + tcp->u_arg[0], nfds); return 0; } if (abbrev(tcp)) { @@ -351,15 +350,41 @@ struct tcb *tcp; if (failed) tprintf(" %#lx", start); tprintf(", %d, ", nfds); + return 0; +} + +int +sys_poll(struct tcb *tcp) +{ + int rc = decode_poll(tcp); + if (exiting(tcp)) { #ifdef INFTIM - if (tcp->u_arg[2] == INFTIM) - tprintf("INFTIM"); - else + if (tcp->u_arg[2] == INFTIM) + tprintf("INFTIM"); + else #endif - tprintf("%ld", tcp->u_arg[2]); - return 0; + tprintf("%ld", tcp->u_arg[2]); + } + return rc; } +#ifdef LINUX +int +sys_ppoll(struct tcb *tcp) +{ + int rc = decode_poll(tcp); + if (exiting(tcp)) { + struct timespec ts; + if (umove(tcp, tcp->u_arg[2], &ts) == 0) + tprintf("{%lu, %lu}, ", ts.tv_sec, ts.tv_nsec); + else + tprintf("{...}, "); + print_sigset(tcp, tcp->u_arg[3], 0); + tprintf(", %lu", tcp->u_arg[4]); + } + return rc; +} +#endif #else /* !HAVE_SYS_POLL_H */ int