1*c9945492SAndroid Build Coastguard Worker #include <signal.h> 2*c9945492SAndroid Build Coastguard Worker #include "syscall.h" 3*c9945492SAndroid Build Coastguard Worker signal(int sig,void (* func)(int))4*c9945492SAndroid Build Coastguard Workervoid (*signal(int sig, void (*func)(int)))(int) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker struct sigaction sa_old, sa = { .sa_handler = func, .sa_flags = SA_RESTART }; 7*c9945492SAndroid Build Coastguard Worker if (__sigaction(sig, &sa, &sa_old) < 0) 8*c9945492SAndroid Build Coastguard Worker return SIG_ERR; 9*c9945492SAndroid Build Coastguard Worker return sa_old.sa_handler; 10*c9945492SAndroid Build Coastguard Worker } 11*c9945492SAndroid Build Coastguard Worker 12*c9945492SAndroid Build Coastguard Worker weak_alias(signal, bsd_signal); 13*c9945492SAndroid Build Coastguard Worker weak_alias(signal, __sysv_signal); 14