#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; | |
} |