xref: /third_party/musl/libc-test/src/api/signal.c (revision 570af302)
1#include <signal.h>
2#define T(t) (t*)0;
3#define F(t,n) {t *y = &x.n;}
4#define C(n) switch(n){case n:;}
5static void f()
6{
7T(sig_atomic_t)
8{void(*x)(int) = SIG_DFL;}
9{void(*x)(int) = SIG_ERR;}
10{void(*x)(int) = SIG_IGN;}
11#ifdef _POSIX_C_SOURCE
12{void(*x)(int) = SIG_HOLD;}
13T(size_t)
14T(sigset_t)
15T(pid_t)
16T(uid_t)
17T(pthread_t)
18T(pthread_attr_t)
19T(struct timespec)
20{
21struct sigevent x;
22F(int,sigev_notify)
23F(int,sigev_signo)
24F(union sigval,sigev_value)
25{void (**y)(union sigval) = &x.sigev_notify_function;}
26F(pthread_attr_t*,sigev_notify_attributes)
27}
28C(SIGEV_NONE)
29C(SIGEV_SIGNAL)
30C(SIGEV_THREAD)
31{
32union sigval x;
33F(int,sival_int)
34F(void*,sival_ptr)
35}
36{int i = SIGRTMIN;}
37{int i = SIGRTMAX;}
38#endif
39C(SIGABRT)
40C(SIGFPE)
41C(SIGILL)
42C(SIGINT)
43C(SIGSEGV)
44C(SIGTERM)
45#ifdef _POSIX_C_SOURCE
46C(SIGALRM)
47C(SIGBUS)
48C(SIGCHLD)
49C(SIGCONT)
50C(SIGHUP)
51C(SIGKILL)
52C(SIGPIPE)
53C(SIGQUIT)
54C(SIGSTOP)
55C(SIGTSTP)
56C(SIGTTIN)
57C(SIGTTOU)
58C(SIGUSR1)
59C(SIGUSR2)
60C(SIGURG)
61#ifdef _XOPEN_SOURCE
62C(SIGSYS)
63C(SIGTRAP)
64C(SIGVTALRM)
65C(SIGXCPU)
66C(SIGXFSZ)
67#endif
68{
69struct sigaction x;
70{void (**y)(int) = &x.sa_handler;}
71F(sigset_t, sa_mask)
72F(int,sa_flags)
73{void (**y)(int, siginfo_t *, void *) = &x.sa_sigaction;}
74}
75C(SIG_BLOCK)
76C(SIG_UNBLOCK)
77C(SIG_SETMASK)
78C(SA_NOCLDSTOP)
79C(SA_RESETHAND)
80C(SA_RESTART)
81C(SA_SIGINFO)
82C(SA_NOCLDWAIT)
83C(SA_NODEFER)
84#ifdef _XOPEN_SOURCE
85C(SA_ONSTACK)
86C(SS_ONSTACK)
87C(SS_DISABLE)
88C(MINSIGSTKSZ)
89C(SIGSTKSZ)
90#endif
91T(mcontext_t)
92{
93ucontext_t x;
94F(ucontext_t*,uc_link)
95F(sigset_t,uc_sigmask)
96F(stack_t, uc_stack)
97F(mcontext_t,uc_mcontext)
98}
99{
100stack_t x;
101F(void *,ss_sp)
102F(size_t,ss_size)
103F(int, ss_flags)
104}
105{
106siginfo_t x;
107F(int, si_signo)
108F(int, si_code)
109#ifdef _XOPEN_SOURCE
110F(int, si_errno)
111#endif
112F(pid_t, si_pid)
113F(uid_t, si_uid)
114F(void *,si_addr)
115F(int, si_status)
116F(union sigval,si_value)
117}
118C(ILL_ILLOPC)
119C(ILL_ILLOPN)
120C(ILL_ILLADR)
121C(ILL_ILLTRP)
122C(ILL_PRVOPC)
123C(ILL_PRVREG)
124C(ILL_COPROC)
125C(ILL_BADSTK)
126C(FPE_INTDIV)
127C(FPE_INTOVF)
128C(FPE_FLTDIV)
129C(FPE_FLTOVF)
130C(FPE_FLTUND)
131C(FPE_FLTRES)
132C(FPE_FLTINV)
133C(FPE_FLTSUB)
134C(SEGV_MAPERR)
135C(SEGV_ACCERR)
136C(BUS_ADRALN)
137C(BUS_ADRERR)
138C(BUS_OBJERR)
139#ifdef _XOPEN_SOURCE
140C(TRAP_BRKPT)
141C(TRAP_TRACE)
142#endif
143C(CLD_EXITED)
144C(CLD_KILLED)
145C(CLD_DUMPED)
146C(CLD_TRAPPED)
147C(CLD_STOPPED)
148C(CLD_CONTINUED)
149C(SI_USER)
150C(SI_QUEUE)
151C(SI_TIMER)
152C(SI_ASYNCIO)
153C(SI_MESGQ)
154{int(*p)(pid_t,int) = kill;}
155{int(*p)(pid_t,int) = killpg;}
156{void(*p)(const siginfo_t*,const char*) = psiginfo;}
157{void(*p)(int,const char*) = psignal;}
158{int(*p)(pthread_t,int) = pthread_kill;}
159{int(*p)(int,const sigset_t*restrict,sigset_t*restrict) = pthread_sigmask;}
160{int(*p)(int,const struct sigaction*restrict,struct sigaction*restrict) = sigaction;}
161{int(*p)(sigset_t*,int) = sigaddset;}
162{int(*p)(const stack_t*restrict,stack_t*restrict) = sigaltstack;}
163{int(*p)(sigset_t*,int) = sigdelset;}
164{int(*p)(sigset_t*) = sigemptyset;}
165{int(*p)(sigset_t*) = sigfillset;}
166{int(*p)(int) = sighold;}
167{int(*p)(int) = sigignore;}
168{int(*p)(int,int) = siginterrupt;}
169{int(*p)(const sigset_t*,int) = sigismember;}
170{int(*p)(int) = sigpause;}
171{int(*p)(sigset_t*) = sigpending;}
172{int(*p)(int,const sigset_t*restrict,sigset_t*restrict) = sigprocmask;}
173{int(*p)(pid_t,int,const union sigval) = sigqueue;}
174{int(*p)(int) = sigrelse;}
175{void(*(*p)(int,void(*)(int)))(int) = sigset;}
176{int(*p)(const sigset_t*) = sigsuspend;}
177{int(*p)(const sigset_t*restrict,siginfo_t*restrict,const struct timespec*restrict) = sigtimedwait;}
178{int(*p)(const sigset_t*restrict,int*restrict) = sigwait;}
179{int(*p)(const sigset_t*restrict,siginfo_t*restrict) = sigwaitinfo;}
180#endif
181{int(*p)(int) = raise;}
182{void(*(*p)(int,void(*)(int)))(int) = signal;}
183}
184