- ksev.sigev_value = evp ? sev.sigev_value
- : (union sigval){.sival_ptr=t};
- ksev.sigev_signo = sev.sigev_signo;
- ksev.sigev_notify = sev.sigev_notify;
- ksev.sigev_tid = 0;
- if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
+ case SIGEV_THREAD_ID:
+ if (evp) {
+ ksev.sigev_value = evp->sigev_value;
+ ksev.sigev_signo = evp->sigev_signo;
+ ksev.sigev_notify = evp->sigev_notify;
+ if (evp->sigev_notify == SIGEV_THREAD_ID)
+ ksev.sigev_tid = evp->sigev_notify_thread_id;
+ else
+ ksev.sigev_tid = 0;
+ ksevp = &ksev;
+ }
+ if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)