| #include <signal.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| #include "syscall.h" | |
| #include "pthread_impl.h" | |
| int sigqueue(pid_t pid, int sig, const union sigval value) | |
| { | |
| siginfo_t si; | |
| sigset_t set; | |
| int r; | |
| memset(&si, 0, sizeof si); | |
| si.si_signo = sig; | |
| si.si_code = SI_QUEUE; | |
| si.si_value = value; | |
| si.si_uid = getuid(); | |
| __block_app_sigs(&set); | |
| si.si_pid = getpid(); | |
| r = syscall(SYS_rt_sigqueueinfo, pid, sig, &si); | |
| __restore_sigs(&set); | |
| return r; | |
| } |