Patch written by Jann Horn <jannhorn@googlemail.com>.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15889
361926 Unhandled Solaris syscall: sysfs(84)
362009 Valgrind dumps core on unimplemented functionality before threads are created
360035 POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits
+363680 add renameat2() support
363705 arm64 missing syscall name_to_handle_at and open_by_handle_at
363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at
DECL_TEMPLATE(linux, sys_newfstatat);
DECL_TEMPLATE(linux, sys_unlinkat);
DECL_TEMPLATE(linux, sys_renameat);
+DECL_TEMPLATE(linux, sys_renameat2);
DECL_TEMPLATE(linux, sys_linkat);
DECL_TEMPLATE(linux, sys_symlinkat);
DECL_TEMPLATE(linux, sys_readlinkat);
// LIN__(__NR_sched_setattr, sys_ni_syscall), // 314
// LIN__(__NR_sched_getattr, sys_ni_syscall), // 315
-// LIN__(__NR_renameat2, sys_ni_syscall), // 316
+ LINX_(__NR_renameat2, sys_renameat2), // 316
// LIN__(__NR_seccomp, sys_ni_syscall), // 317
LINXY(__NR_getrandom, sys_getrandom), // 318
LINXY(__NR_memfd_create, sys_memfd_create) // 319
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 376
LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 377
+ LINX_(__NR_renameat2, sys_renameat2), // 382
+
LINXY(__NR_getrandom, sys_getrandom), // 384
LINXY(__NR_memfd_create, sys_memfd_create) // 385
};
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 270
LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 271
+ LINX_(__NR_renameat2, sys_renameat2), // 276
+
LINXY(__NR_getrandom, sys_getrandom), // 278
LINXY(__NR_memfd_create, sys_memfd_create), // 279
PRE_MEM_RASCIIZ( "renameat(newpath)", ARG4 );
}
+PRE(sys_renameat2)
+{
+ PRINT("sys_renameat2 ( %ld, %#lx(%s), %ld, %#lx(%s), %lu )",
+ SARG1, ARG2, (HChar*)ARG2, SARG3, ARG4, (HChar*)ARG4, ARG5);
+ PRE_REG_READ5(long, "renameat2",
+ int, olddfd, const char *, oldpath,
+ int, newdfd, const char *, newpath,
+ unsigned int, flags);
+ PRE_MEM_RASCIIZ( "renameat2(oldpath)", ARG2 );
+ PRE_MEM_RASCIIZ( "renameat2(newpath)", ARG4 );
+}
+
PRE(sys_linkat)
{
*flags |= SfMayBlock;
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351
LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352
+ LINX_(__NR_renameat2, sys_renameat2), // 357
+
LINXY(__NR_getrandom, sys_getrandom), // 359
LINXY(__NR_memfd_create, sys_memfd_create) // 360
};
// ?????(__NR_sched_setattr, ), // 345
// ?????(__NR_sched_getattr, ), // 346
-// ?????(__NR_renameat2, ), // 347
+ LINX_(__NR_renameat2, sys_renameat2), // 347
// ?????(__NR_seccomp, ), // 348
LINXY(__NR_getrandom, sys_getrandom), // 349
// LIN__(__NR_finit_module, sys_ni_syscall), // 350
// LIN__(__NR_sched_setattr, sys_ni_syscall), // 351
// LIN__(__NR_sched_getattr, sys_ni_syscall), // 352
-// LIN__(__NR_renameat2, sys_ni_syscall), // 353
+ LINX_(__NR_renameat2, sys_renameat2), // 353
// LIN__(__NR_seccomp, sys_ni_syscall), // 354
LINXY(__NR_getrandom, sys_getrandom), // 355