1*c9945492SAndroid Build Coastguard Worker #include <signal.h> 2*c9945492SAndroid Build Coastguard Worker #include <string.h> 3*c9945492SAndroid Build Coastguard Worker #include <unistd.h> 4*c9945492SAndroid Build Coastguard Worker #include "syscall.h" 5*c9945492SAndroid Build Coastguard Worker #include "pthread_impl.h" 6*c9945492SAndroid Build Coastguard Worker sigqueue(pid_t pid,int sig,const union sigval value)7*c9945492SAndroid Build Coastguard Workerint sigqueue(pid_t pid, int sig, const union sigval value) 8*c9945492SAndroid Build Coastguard Worker { 9*c9945492SAndroid Build Coastguard Worker siginfo_t si; 10*c9945492SAndroid Build Coastguard Worker sigset_t set; 11*c9945492SAndroid Build Coastguard Worker int r; 12*c9945492SAndroid Build Coastguard Worker memset(&si, 0, sizeof si); 13*c9945492SAndroid Build Coastguard Worker si.si_signo = sig; 14*c9945492SAndroid Build Coastguard Worker si.si_code = SI_QUEUE; 15*c9945492SAndroid Build Coastguard Worker si.si_value = value; 16*c9945492SAndroid Build Coastguard Worker si.si_uid = getuid(); 17*c9945492SAndroid Build Coastguard Worker __block_app_sigs(&set); 18*c9945492SAndroid Build Coastguard Worker si.si_pid = getpid(); 19*c9945492SAndroid Build Coastguard Worker r = syscall(SYS_rt_sigqueueinfo, pid, sig, &si); 20*c9945492SAndroid Build Coastguard Worker __restore_sigs(&set); 21*c9945492SAndroid Build Coastguard Worker return r; 22*c9945492SAndroid Build Coastguard Worker } 23