// NYI munlockall 325
// 326
DECL_TEMPLATE(darwin, issetugid); // 327
-// NYI __pthread_kill 328
+DECL_TEMPLATE(darwin, __pthread_kill); // 328
DECL_TEMPLATE(darwin, __pthread_sigmask); // 329
// NYI __sigwait 330
DECL_TEMPLATE(darwin, __disable_threadsignal); // 331
}
+PRE(__pthread_kill)
+{
+ PRINT("__pthread_kill ( %ld, %ld )", ARG1, ARG2);
+ PRE_REG_READ2(long, "__pthread_kill", vki_pthread_t*, thread, int, sig);
+}
+
+
PRE(__pthread_sigmask)
{
// GrP fixme
// _____(__NR_munlockall),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(326)), // ???
MACX_(__NR_issetugid, issetugid),
-// _____(__NR___pthread_kill),
+ MACX_(__NR___pthread_kill, __pthread_kill),
MACX_(__NR___pthread_sigmask, __pthread_sigmask),
// _____(__NR___sigwait),
MACX_(__NR___disable_threadsignal, __disable_threadsignal),
#define vki_clock_t clock_t
#define vki_u_int32_t u_int32_t
#define vki_u_int16_t u_int16_t
+#define vki_pthread_t pthread_t
// valgrind special
GO_UNIMP(326, "unused");
// __NR_issetugid 327
- // __NR___pthread_kill 328
+
+ GO(__NR___pthread_kill, 328, "2s 0m");
+ SY(__NR___pthread_kill, x0, x0); FAIL;
+
// __NR___pthread_sigmask 329
// __NR___sigwait 330
// __NR_sigwait 330) // GrP fixme hack
//SY(__NR_stime); // (Not yet handled by Valgrind) FAIL;
// __NR_ptrace 26
- // XXX: memory pointed to be arg3 goes unchecked... otherwise would be 2m
+ // XXX: memory pointed to by arg3 goes unchecked... otherwise would be 2m
GO(__NR_ptrace, "4s 1m");
SY(__NR_ptrace, x0+PTRACE_GETREGS, x0, x0, x0); FAIL;