translate lwp siginfo to user siginfo_t */
| 345 | |
| 346 | /** translate lwp siginfo to user siginfo_t */ |
| 347 | rt_inline void siginfo_k2u(lwp_siginfo_t ksigi, siginfo_t *usigi) |
| 348 | { |
| 349 | int signo = ksigi->ksiginfo.signo; |
| 350 | usigi->si_code = ksigi->ksiginfo.code; |
| 351 | usigi->si_signo = signo; |
| 352 | usigi->si_pid = ksigi->ksiginfo.from_pid; |
| 353 | |
| 354 | if (ksigi->ext) |
| 355 | { |
| 356 | if (signo == SIGCHLD) |
| 357 | { |
| 358 | usigi->si_status = ksigi->ext->sigchld.status; |
| 359 | usigi->si_utime = ksigi->ext->sigchld.stime; |
| 360 | usigi->si_stime = ksigi->ext->sigchld.utime; |
| 361 | } |
| 362 | } |
| 363 | |
| 364 | /* deprecated field */ |
| 365 | usigi->si_errno = 0; |
| 366 | } |
| 367 | |
| 368 | /* must called in locked context */ |
| 369 | rt_inline lwp_sighandler_t _get_sighandler_locked(struct rt_lwp *lwp, int signo) |
no outgoing calls
no test coverage detected