xref: /aosp_15_r20/external/musl/src/signal/signal.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
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 Worker void (*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