faccessat2 is a new syscall in linux 5.8 and will be used by glibc 2.33.
faccessat2 is simply faccessat with a new flag argument. It has
a common number across all linux arches.
https://bugs.kde.org/427787
423195 PPC ISA 3.1 support is missing, part 1
425232 PPC ISA 3.1 support is missing, part 2
426123 PPC ISA 3.1 support is missing, part 3
+427787 Support new faccessat2 linux syscall (439)
Release 3.16.1 (?? June 2020)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DECL_TEMPLATE(linux, sys_readlinkat);
DECL_TEMPLATE(linux, sys_fchmodat);
DECL_TEMPLATE(linux, sys_faccessat);
+DECL_TEMPLATE(linux, sys_faccessat2);
DECL_TEMPLATE(linux, sys_utimensat);
DECL_TEMPLATE(linux, sys_name_to_handle_at);
DECL_TEMPLATE(linux, sys_open_by_handle_at);
LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425
LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_futex_time64, sys_futex_time64), // 422
LINXY(__NR_sched_rr_get_interval_time64,
sys_sched_rr_get_interval_time64), // 423
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
// (__NR_pkey_free, sys_ni_syscall), // 290
LINXY(__NR_statx, sys_statx), // 397
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
PRE_MEM_RASCIIZ( "faccessat(pathname)", ARG2 );
}
+PRE(sys_faccessat2)
+{
+ PRINT("sys_faccessat2 ( %ld, %#" FMT_REGWORD "x(%s), %ld, %ld )",
+ SARG1, ARG2, (HChar*)(Addr)ARG2, SARG3, SARG4);
+ PRE_REG_READ4(long, "faccessat2",
+ int, dfd, const char *, pathname, int, mode, int, flags);
+ PRE_MEM_RASCIIZ( "faccessat2(pathname)", ARG2 );
+}
+
PRE(sys_name_to_handle_at)
{
PRINT("sys_name_to_handle_at ( %ld, %#" FMT_REGWORD "x(%s), %#"
LINXY(__NR_futex_time64, sys_futex_time64), // 422
LINXY(__NR_sched_rr_get_interval_time64,
sys_sched_rr_get_interval_time64), // 423
+
+ LINX_ (__NR_faccessat2, sys_faccessat2), // 439
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
LINX_ (__NR_syncfs, sys_syncfs),
LINXY (__NR_statx, sys_statx),
LINX_ (__NR_setns, sys_setns),
+ LINX_ (__NR_faccessat2, sys_faccessat2),
};
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
// (__NR_pkey_mprotect, sys_ni_syscall),
// (__NR_pkey_alloc, sys_ni_syscall),
// (__NR_pkey_free, sys_ni_syscall),
+ LINX_ (__NR_faccessat2, sys_faccessat2),
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
LINXY(__NR_futex_time64, sys_futex_time64), // 422
LINXY(__NR_sched_rr_get_interval_time64,
sys_sched_rr_get_interval_time64), // 423
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINX_(__NR_pwritev2, sys_pwritev2), // 381
LINXY(__NR_statx, sys_statx), // 383
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINX_(__NR_pwritev2, sys_pwritev2), // 377
LINXY(__NR_statx, sys_statx), // 379
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425
LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
LINXY(__NR_io_uring_register, sys_io_uring_register),// 427
+
+ LINX_(__NR_faccessat2, sys_faccessat2), // 439
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
#define __NR_fsmount 432
#define __NR_fspick 433
+#define __NR_faccessat2 439
+
#endif