DECL_TEMPLATE(solaris, sys_lwp_wait);
DECL_TEMPLATE(solaris, sys_lwp_mutex_wakeup);
DECL_TEMPLATE(solaris, sys_lwp_cond_wait);
+DECL_TEMPLATE(solaris, sys_lwp_cond_signal);
DECL_TEMPLATE(solaris, sys_lwp_cond_broadcast);
DECL_TEMPLATE(solaris, sys_pread);
DECL_TEMPLATE(solaris, sys_pwrite);
POST_MEM_WRITE(ARG3, sizeof(vki_timespec_t));
}
+PRE(sys_lwp_cond_signal)
+{
+ /* int lwp_cond_signal(lwp_cond_t *cvp); */
+ *flags |= SfMayBlock;
+ PRINT("sys_lwp_cond_signal( %#lx )", ARG1);
+ PRE_REG_READ1(long, "lwp_cond_signal", vki_lwp_cond_t *, cvp);
+
+ vki_lwp_cond_t *cvp = (vki_lwp_cond_t *) ARG1;
+ PRE_FIELD_READ("lwp_cond_signal(cvp->type)", cvp->vki_cond_type);
+ PRE_FIELD_READ("lwp_cond_signal(cvp->waiters_kernel)",
+ cvp->vki_cond_waiters_kernel);
+}
+
+POST(sys_lwp_cond_signal)
+{
+ vki_lwp_cond_t *cvp = (vki_lwp_cond_t *) ARG1;
+ POST_FIELD_WRITE(cvp->vki_cond_waiters_kernel);
+}
+
PRE(sys_lwp_cond_broadcast)
{
/* int lwp_cond_broadcast(lwp_cond_t *cvp); */
SOLXY(__NR_lwp_wait, sys_lwp_wait), /* 167 */
SOLXY(__NR_lwp_mutex_wakeup, sys_lwp_mutex_wakeup), /* 168 */
SOLXY(__NR_lwp_cond_wait, sys_lwp_cond_wait), /* 170 */
+ SOLXY(__NR_lwp_cond_signal, sys_lwp_cond_signal), /* 171 */
SOLX_(__NR_lwp_cond_broadcast, sys_lwp_cond_broadcast), /* 172 */
SOLXY(__NR_pread, sys_pread), /* 173 */
SOLX_(__NR_pwrite, sys_pwrite), /* 174 */
#define __NR_lwp_wait SYS_lwp_wait
#define __NR_lwp_mutex_wakeup SYS_lwp_mutex_wakeup
#define __NR_lwp_cond_wait SYS_lwp_cond_wait
-//#define __NR_lwp_cond_signal SYS_lwp_cond_signal
+#define __NR_lwp_cond_signal SYS_lwp_cond_signal
#define __NR_lwp_cond_broadcast SYS_lwp_cond_broadcast
#define __NR_pread SYS_pread
#define __NR_pwrite SYS_pwrite
SY(SYS_lwp_cond_wait, x0 + 1, x0 + 1, x0 + 1, x0); FAIL;
/* SYS_lwp_cond_signal 171 */
- /* XXX Missing wrapper. */
+ GO(SYS_lwp_cond_signal, "1s 2m");
+ SY(SYS_lwp_cond_signal, x0); FAIL;
/* SYS_lwp_cond_broadcast 172 */
GO(SYS_lwp_cond_broadcast, "1s 2m");
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
+---------------------------------------------------------
+171: SYS_lwp_cond_signal 1s 2m
+---------------------------------------------------------
+Syscall param lwp_cond_signal(cvp) contains uninitialised byte(s)
+ ...
+
+Syscall param lwp_cond_signal(cvp->type) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param lwp_cond_signal(cvp->waiters_kernel) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
---------------------------------------------------------
172: SYS_lwp_cond_broadcast 1s 2m
---------------------------------------------------------