mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
Add support for rt_tgsigqueueinfo system call based on patch
from Dodji Seketeli. Part fix for #215973. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10947
This commit is contained in:
parent
0d0f835353
commit
40fa55a53b
@ -242,6 +242,7 @@ DECL_TEMPLATE(linux, sys_rt_sigprocmask);
|
||||
DECL_TEMPLATE(linux, sys_rt_sigpending);
|
||||
DECL_TEMPLATE(linux, sys_rt_sigtimedwait);
|
||||
DECL_TEMPLATE(linux, sys_rt_sigqueueinfo);
|
||||
DECL_TEMPLATE(linux, sys_rt_tgsigqueueinfo);
|
||||
DECL_TEMPLATE(linux, sys_rt_sigsuspend);
|
||||
|
||||
// Linux-specific?
|
||||
|
||||
@ -1379,7 +1379,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
|
||||
LINXY(__NR_preadv, sys_preadv), // 295
|
||||
LINX_(__NR_pwritev, sys_pwritev), // 296
|
||||
// (__NR_rt_tgsigqueueinfo, sys_ni_syscall) // 297
|
||||
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo),// 297
|
||||
LINXY(__NR_perf_counter_open, sys_perf_counter_open) // 298
|
||||
};
|
||||
|
||||
|
||||
@ -2761,6 +2761,21 @@ POST(sys_rt_sigqueueinfo)
|
||||
SET_STATUS_Failure( VKI_EINVAL );
|
||||
}
|
||||
|
||||
PRE(sys_rt_tgsigqueueinfo)
|
||||
{
|
||||
PRINT("sys_rt_tgsigqueueinfo(%ld, %ld, %ld, %#lx)", ARG1, ARG2, ARG3, ARG4);
|
||||
PRE_REG_READ4(long, "rt_tgsigqueueinfo",
|
||||
int, tgid, int, pid, int, sig, vki_siginfo_t *, uinfo);
|
||||
if (ARG3 != 0)
|
||||
PRE_MEM_READ( "rt_tgsigqueueinfo(uinfo)", ARG4, VKI_SI_MAX_SIZE );
|
||||
}
|
||||
|
||||
POST(sys_rt_tgsigqueueinfo)
|
||||
{
|
||||
if (!ML_(client_signal_OK)(ARG3))
|
||||
SET_STATUS_Failure( VKI_EINVAL );
|
||||
}
|
||||
|
||||
// XXX: x86-specific? The kernel prototypes for the different archs are
|
||||
// hard to decipher.
|
||||
PRE(sys_rt_sigsuspend)
|
||||
|
||||
@ -1871,7 +1871,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
LINXY(__NR_perf_counter_open, sys_perf_counter_open),// 319
|
||||
LINXY(__NR_preadv, sys_preadv), // 320
|
||||
LINX_(__NR_pwritev, sys_pwritev), // 321
|
||||
// (__NR_rt_tgsigqueueinfo, sys_ni_syscall) // 322
|
||||
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) // 322
|
||||
};
|
||||
|
||||
const UInt ML_(syscall_table_size) =
|
||||
|
||||
@ -1511,7 +1511,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
LINXY(__NR_perf_counter_open, sys_perf_counter_open),// 319
|
||||
LINXY(__NR_preadv, sys_preadv), // 320
|
||||
LINX_(__NR_pwritev, sys_pwritev), // 321
|
||||
// (__NR_rt_tgsigqueueinfo, sys_ni_syscall) // 322
|
||||
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) // 322
|
||||
};
|
||||
|
||||
const UInt ML_(syscall_table_size) =
|
||||
|
||||
@ -2258,7 +2258,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
|
||||
LINXY(__NR_preadv, sys_preadv), // 333
|
||||
LINX_(__NR_pwritev, sys_pwritev), // 334
|
||||
|
||||
// (__NR_rt_tgsigqueueinfo, sys_ni_syscall) // 335
|
||||
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo),// 335
|
||||
LINXY(__NR_perf_counter_open, sys_perf_counter_open) // 336
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user