move the GNU siginfo renaming so it doesn't lead to mismatching names
[musl] / include / signal.h
1 #ifndef _SIGNAL_H
2 #define _SIGNAL_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
9  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
10
11 #ifdef _GNU_SOURCE
12 #define __siginfo siginfo
13 #endif
14
15 #define __NEED_size_t
16 #define __NEED_pid_t
17 #define __NEED_uid_t
18 #define __NEED_struct_timespec
19 #define __NEED_pthread_t
20 #define __NEED_time_t
21 #define __NEED_clock_t
22 #define __NEED_sigset_t
23 #define __NEED_siginfo_t
24
25 #include <bits/alltypes.h>
26
27 struct sigaction
28 {
29         union {
30                 void (*sa_handler)(int);
31                 void (*sa_sigaction)(int, siginfo_t *, void *);
32         } __sa_handler;
33         sigset_t sa_mask;
34         int sa_flags;
35         void (*__sa_restorer)(void);    
36 };
37 #define sa_handler   __sa_handler.sa_handler
38 #define sa_sigaction __sa_handler.sa_sigaction
39
40 typedef struct
41 {
42         void *ss_sp;
43         int ss_flags;
44         size_t ss_size;
45 } stack_t;
46
47 union sigval
48 {
49         int sival_int;
50         void *sival_ptr;
51 };
52
53 int __libc_current_sigrtmin(void);
54 int __libc_current_sigrtmax(void);
55
56 #define SIGRTMIN  (__libc_current_sigrtmin())
57 #define SIGRTMAX  (__libc_current_sigrtmax())
58
59 int kill(pid_t, int);
60
61 int sigemptyset(sigset_t *);
62 int sigfillset(sigset_t *);
63 int sigaddset(sigset_t *, int);
64 int sigdelset(sigset_t *, int);
65 int sigismember(const sigset_t *, int);
66
67 int sigprocmask(int, const sigset_t *, sigset_t *);
68 int sigsuspend(const sigset_t *);
69 int sigaction(int, const struct sigaction *, struct sigaction *);
70 int sigpending(sigset_t *);
71 int sigwait(const sigset_t *, int *);
72 int sigwaitinfo(const sigset_t *, siginfo_t *);
73 int sigtimedwait(const sigset_t *, siginfo_t *, const struct timespec *);
74 int sigqueue(pid_t, int, const union sigval);
75
76 int pthread_sigmask(int, const sigset_t *, sigset_t *);
77 int pthread_kill(pthread_t, int);
78
79 #endif
80
81 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
82 int killpg(pid_t, int);
83 int sigaltstack(const stack_t *, stack_t *);
84 int sighold(int);
85 int sigignore(int);
86 int siginterrupt(int, int);
87 int sigpause(int);
88 int sigrelse(int);
89 void (*sigset(int, void (*)(int)))(int);
90 #endif
91
92 #ifdef _GNU_SOURCE
93 typedef int (*sighandler_t)(int);
94 void (*bsd_signal(int, void (*)(int)))(int);
95 #endif
96
97 #include <bits/signal.h>
98
99 typedef int sig_atomic_t;
100
101 void (*signal(int, void (*)(int)))(int);
102 int raise(int);
103
104 #ifdef __cplusplus
105 }
106 #endif
107
108 #endif