than mailing the developers (or mailing lists) directly -- bugs that
are not entered into bugzilla tend to get forgotten about or ignored.
+460192 Add epoll_pwait2
469049 link failure on ppc64 (big endian) valgrind 3.20
469146 massif --ignore-fn does not ignore inlined functions
DECL_TEMPLATE(linux, sys_epoll_ctl);
DECL_TEMPLATE(linux, sys_epoll_wait);
DECL_TEMPLATE(linux, sys_epoll_pwait);
+DECL_TEMPLATE(linux, sys_epoll_pwait2);
DECL_TEMPLATE(linux, sys_eventfd);
DECL_TEMPLATE(linux, sys_eventfd2);
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
+
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
};
LINXY(__NR_close_range, sys_close_range), // 436
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
};
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
+
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
};
epoll_post_helper (tid, arrghs, status);
}
+PRE(sys_epoll_pwait2)
+{
+ *flags |= SfMayBlock;
+ PRINT("sys_epoll_pwait2 ( %ld, %#" FMT_REGWORD "x, %ld, %#"
+ FMT_REGWORD "x, %#" FMT_REGWORD "x, %" FMT_REGWORD "u )",
+ SARG1, ARG2, SARG3, ARG4, ARG5, ARG6);
+ PRE_REG_READ6(long, "epoll_pwait2",
+ int, epfd, struct vki_epoll_event *, events,
+ int, maxevents, const struct timespec64 *, timeout,
+ vki_sigset_t *, sigmask, vki_size_t, sigsetsize);
+ /* Assume all (maxevents) events records should be (fully) writable. */
+ PRE_MEM_WRITE( "epoll_pwait2(events)", ARG2, sizeof(struct vki_epoll_event)*ARG3);
+ /* epoll_pwait2 only supports 64bit timespec. */
+ if (ARG4)
+ pre_read_timespec64(tid, "epoll_pwait2(timeout)", ARG4);
+ if (ARG5)
+ PRE_MEM_READ( "epoll_pwait2(sigmask)", ARG5, sizeof(vki_sigset_t) );
+}
+POST(sys_epoll_pwait2)
+{
+ epoll_post_helper (tid, arrghs, status);
+}
+
PRE(sys_eventfd)
{
PRINT("sys_eventfd ( %" FMT_REGWORD "u )", ARG1);
LINXY(__NR_close_range, sys_close_range), // 436
LINX_ (__NR_faccessat2, sys_faccessat2), // 439
+
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
GENX_ (__NR_clone3, sys_ni_syscall),
LINXY (__NR_close_range, sys_close_range),
LINX_ (__NR_faccessat2, sys_faccessat2),
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2),
};
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
GENX_ (__NR_clone3, sys_ni_syscall),
LINXY (__NR_close_range, sys_close_range),
LINX_ (__NR_faccessat2, sys_faccessat2),
+ LINXY (__NR_epoll_pwait2, sys_epoll_pwait2),
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
LINXY(__NR_close_range, sys_close_range), // 436
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+
+ LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), // 441
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_close_range, sys_close_range), // 436
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+
+ LINXY (__NR_epoll_pwait2, sys_epoll_pwait2), // 441
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_close_range, sys_close_range), // 436
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINX_(__NR_faccessat2, sys_faccessat2), // 439
+ LINXY(__NR_epoll_pwait2, sys_epoll_pwait2), // 441
+
LINXY(__NR_memfd_secret, sys_memfd_secret), // 447
};
#define __NR_faccessat2 439
+#define __NR_epoll_pwait2 441
+
#define __NR_memfd_secret 447
#endif