mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Add signalfd4 support.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8930
This commit is contained in:
parent
7ed5c0529e
commit
f1ac1fd992
@ -133,6 +133,7 @@ DECL_TEMPLATE(linux, sys_timerfd_gettime);
|
||||
DECL_TEMPLATE(linux, sys_timerfd_settime);
|
||||
|
||||
DECL_TEMPLATE(linux, sys_signalfd);
|
||||
DECL_TEMPLATE(linux, sys_signalfd4);
|
||||
|
||||
DECL_TEMPLATE(linux, sys_capget);
|
||||
DECL_TEMPLATE(linux, sys_capset);
|
||||
|
||||
@ -1361,7 +1361,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 286
|
||||
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 287
|
||||
// (__NR_paccept, sys_ni_syscall) // 288
|
||||
// (__NR_signalfd4, sys_ni_syscall) // 289
|
||||
LINXY(__NR_signalfd4, sys_signalfd4), // 289
|
||||
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 290
|
||||
// (__NR_epoll_create1, sys_ni_syscall) // 291
|
||||
|
||||
@ -2431,7 +2431,7 @@ POST(sys_sigprocmask)
|
||||
|
||||
PRE(sys_signalfd)
|
||||
{
|
||||
PRINT("sys_signalfd ( %d, %#lx, %llu )", (Int)ARG1, ARG2, (ULong) ARG3);
|
||||
PRINT("sys_signalfd ( %d, %#lx, %llu )", (Int)ARG1,ARG2,(ULong)ARG3);
|
||||
PRE_REG_READ3(long, "sys_signalfd",
|
||||
int, fd, vki_sigset_t *, sigmask, vki_size_t, sigsetsize);
|
||||
PRE_MEM_READ( "signalfd(sigmask)", ARG2, sizeof(vki_sigset_t) );
|
||||
@ -2449,6 +2449,26 @@ POST(sys_signalfd)
|
||||
}
|
||||
}
|
||||
|
||||
PRE(sys_signalfd4)
|
||||
{
|
||||
PRINT("sys_signalfd4 ( %d, %#lx, %llu, %ld )", (Int)ARG1,ARG2,(ULong)ARG3,ARG4);
|
||||
PRE_REG_READ4(long, "sys_signalfd4",
|
||||
int, fd, vki_sigset_t *, sigmask, vki_size_t, sigsetsize, int, flags);
|
||||
PRE_MEM_READ( "signalfd(sigmask)", ARG2, sizeof(vki_sigset_t) );
|
||||
if ((int)ARG1 != -1 && !ML_(fd_allowed)(ARG1, "signalfd", tid, False))
|
||||
SET_STATUS_Failure( VKI_EBADF );
|
||||
}
|
||||
POST(sys_signalfd4)
|
||||
{
|
||||
if (!ML_(fd_allowed)(RES, "signalfd4", tid, True)) {
|
||||
VG_(close)(RES);
|
||||
SET_STATUS_Failure( VKI_EMFILE );
|
||||
} else {
|
||||
if (VG_(clo_track_fds))
|
||||
ML_(record_fd_open_nameless) (tid, RES);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
rt_sig* wrappers
|
||||
|
||||
@ -1859,7 +1859,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
// LINXY(__NR_subpage_prot, sys_ni_syscall), // 310
|
||||
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 311
|
||||
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 312
|
||||
// (__NR_signalfd4, sys_ni_syscall) // 313
|
||||
LINXY(__NR_signalfd4, sys_signalfd4), // 313
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 314
|
||||
// (__NR_epoll_create1, sys_ni_syscall) // 315
|
||||
// (__NR_dup3, sys_ni_syscall) // 316
|
||||
|
||||
@ -1499,7 +1499,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
// LINXY(__NR_subpage_prot, sys_ni_syscall), // 310
|
||||
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 311
|
||||
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 312
|
||||
// (__NR_signalfd4, sys_ni_syscall) // 313
|
||||
LINXY(__NR_signalfd4, sys_signalfd4), // 313
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 314
|
||||
// (__NR_epoll_create1, sys_ni_syscall) // 315
|
||||
// (__NR_dup3, sys_ni_syscall) // 316
|
||||
|
||||
@ -2234,7 +2234,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
|
||||
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 325
|
||||
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 326
|
||||
// (__NR_signalfd4, sys_ni_syscall) // 327
|
||||
LINXY(__NR_signalfd4, sys_signalfd4), // 327
|
||||
LINX_(__NR_eventfd2, sys_eventfd2), // 328
|
||||
// (__NR_epoll_create1, sys_ni_syscall) // 329
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user