6#ifndef ZEPHYR_INCLUDE_POSIX_POSIX_SIGNAL_H_
7#define ZEPHYR_INCLUDE_POSIX_POSIX_SIGNAL_H_
9#if defined(_POSIX_C_SOURCE) || defined(__DOXYGEN__)
21#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
22#define SIG_HOLD ((void *)-2)
27#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
29#if !defined(_PTHREAD_T_DECLARED) && !defined(__pthread_t_defined)
31#define _PTHREAD_T_DECLARED
32#define __pthread_t_defined
40#if !defined(_UID_T_DECLARED) && !defined(__uid_t_defined)
42#define _UID_T_DECLARED
43#define __uid_t_defined
46#if !defined(_TIME_T_DECLARED) && !defined(__time_t_defined)
48#define _TIME_T_DECLARED
49#define __time_t_defined
52#if !defined(_TIMESPEC_DECLARED) && !defined(__timespec_defined)
57#define _TIMESPEC_DECLARED
58#define __timespec_defined
64#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
66#define SIGRTMAX (SIGRTMIN + CONFIG_POSIX_RTSIG_MAX)
68#define SIGRTMAX SIGRTMIN
71#if !defined(_SIGSET_T_DECLARED) && !defined(__sigset_t_defined)
75#define _SIGSET_T_DECLARED
76#define __sigset_t_defined
79#if !defined(_PID_T_DECLARED) && !defined(__pid_t_defined)
81#define _PID_T_DECLARED
82#define __pid_t_defined
85#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
87#if !defined(_PTHREAD_ATTR_T_DECLARED) && !defined(__pthread_attr_t_defined)
92#define _PTHREAD_ATTR_T_DECLARED
93#define __pthread_attr_t_defined
98#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
102#if !defined(_SIGEVENT_DECLARED) && !defined(__sigevent_defined)
104#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
111#define _SIGEVENT_DECLARED
112#define __sigevent_defined
116#define SIGEV_SIGNAL 2
117#define SIGEV_THREAD 3
123#if !defined(_SIGVAL_DECLARED) && !defined(__sigval_defined)
128#define _SIGVAL_DECLARED
129#define __sigval_defined
134#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
136#if !defined(_SIGACTION_DECLARED) && !defined(__sigaction_defined)
145#define _SIGACTION_DECLARED
146#define __sigaction_defined
153#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
154#define SA_NOCLDSTOP 0x00000001
155#define SA_ONSTACK 0x00000002
157#define SA_RESETHAND 0x00000004
158#define SA_RESTART 0x00000008
159#define SA_SIGINFO 0x00000010
160#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
161#define SA_NOCLDWAIT 0x00000020
163#define SA_NODEFER 0x00000040
164#define SS_ONSTACK 0x00000001
165#define SS_DISABLE 0x00000002
166#define MINSIGSTKSZ 4096
169#if !defined(_MCONTEXT_T_DECLARED) && !defined(__mcontext_t_defined)
175#define _MCONTEXT_T_DECLARED
176#define __mcontext_defined
179#if !defined(_UCONTEXT_T_DECLARED) && !defined(__ucontext_t_defined)
186#define _UCONTEXT_T_DECLARED
187#define __ucontext_defined
190#if !defined(_STACK_T_DECLARED) && !defined(__stack_t_defined)
196#define _STACK_T_DECLARED
197#define __stack_t_defined
202#if !defined(_SIGINFO_T_DECLARED) && !defined(__siginfo_t_defined)
205#if defined(_XOPEN_STREAMS) || defined(__DOXYGEN__)
213#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
218#define _SIGINFO_T_DECLARED
219#define __siginfo_t_defined
224#if !defined(_SIGHANDLER_T_DECLARED) && !defined(__sighandler_t_defined)
226#define _SIGHANDLER_T_DECLARED
227#define __sighandler_t_defined
231#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
236#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
241#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
247#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
253#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
260#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
265#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
268#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
273#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
278#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
285#if !defined(SIGINT) || defined(__DOXYGEN__)
289#if !defined(SIGILL) || defined(__DOXYGEN__)
293#if !defined(SIGABRT) || defined(__DOXYGEN__)
297#if !defined(SIGFPE) || defined(__DOXYGEN__)
302#if !defined(SIGSEGV) || defined(__DOXYGEN__)
308#if !defined(SIGTERM) || defined(__DOXYGEN__)
328#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
351#define SEGV_MAPERR 18
352#define SEGV_ACCERR 19
359#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
369#define CLD_TRAPPED 28
370#define CLD_STOPPED 29
371#define CLD_CONTINUED 30
373#if defined(_XOPEN_STREAMS) || defined(__DOXYGEN__)
_TIME_T_ time_t
Definition _timespec.h:14
#define BITS_PER_LONG
Number of bits in a long int.
Definition util.h:71
#define DIV_ROUND_UP(n, d)
Divide and round up.
Definition util.h:353
long pid_t
Definition posix_signal.h:80
int pthread_sigmask(int how, const sigset_t *ZRESTRICT set, sigset_t *ZRESTRICT oset)
int sigdelset(sigset_t *set, int sig)
int kill(pid_t pid, int sig)
int sigqueue(pid_t pid, int sig, union sigval value)
int killpg(pid_t pgrp, int sig)
#define SIGRTMAX
Definition posix_signal.h:66
int sigtimedwait(const sigset_t *ZRESTRICT set, siginfo_t *ZRESTRICT info, const struct timespec *ZRESTRICT timeout)
int sigemptyset(sigset_t *set)
int pthread_kill(pthread_t thread, int sig)
int siginterrupt(int sig, int flag)
int sigaction(int sig, const struct sigaction *ZRESTRICT act, struct sigaction *ZRESTRICT oact)
int sigismember(const sigset_t *set, int sig)
int sigsuspend(const sigset_t *set)
int sigprocmask(int how, const sigset_t *ZRESTRICT set, sigset_t *ZRESTRICT oset)
int sigpending(sigset_t *set)
long time_t
Definition posix_signal.h:47
void(* sighandler_t)(int sig)
Definition posix_signal.h:225
int sigfillset(sigset_t *set)
int sigwait(const sigset_t *ZRESTRICT set, int *ZRESTRICT sig)
void psiginfo(const siginfo_t *info, const char *message)
unsigned int pthread_t
Definition posix_signal.h:30
int sigaddset(sigset_t *set, int sig)
int sigwaitinfo(const sigset_t *ZRESTRICT set, siginfo_t *ZRESTRICT info)
sighandler_t sigset(int sig, sighandler_t disp)
int sigaltstack(const stack_t *ZRESTRICT ss, stack_t *ZRESTRICT oss)
void psignal(int sig, const char *message)
int uid_t
Definition posix_signal.h:41
Definition posix_signal.h:170
unsigned long flags
Definition posix_signal.h:173
unsigned long gregs[32]
Definition posix_signal.h:172
Definition posix_signal.h:88
void * stack
Definition posix_signal.h:89
unsigned int details[2]
Definition posix_signal.h:90
Definition posix_signal.h:137
void(* sa_sigaction)(int sig, siginfo_t *info, void *context)
Definition posix_signal.h:140
sigset_t sa_mask
Definition posix_signal.h:142
void(* sa_handler)(int sig)
Definition posix_signal.h:139
int sa_flags
Definition posix_signal.h:143
Definition posix_signal.h:103
int sigev_notify
Definition posix_signal.h:108
union sigval sigev_value
Definition posix_signal.h:107
int sigev_signo
Definition posix_signal.h:109
pthread_attr_t * sigev_thread_attr
Definition posix_signal.h:105
Definition posix_signal.h:203
int si_code
Definition posix_signal.h:212
uid_t si_uid
Definition posix_signal.h:210
int si_signo
Definition posix_signal.h:211
pid_t si_pid
Definition posix_signal.h:209
long si_band
Definition posix_signal.h:206
int si_status
Definition posix_signal.h:216
void * si_addr
Definition posix_signal.h:204
int si_errno
Definition posix_signal.h:214
union sigval si_value
Definition posix_signal.h:208
Definition posix_signal.h:72
unsigned long sig[DIV_ROUND_UP((32+CONFIG_POSIX_RTSIG_MAX)+1, BITS_PER_LONG)]
Definition posix_signal.h:73
Definition posix_signal.h:191
void * ss_sp
Definition posix_signal.h:192
int ss_flags
Definition posix_signal.h:194
size_t ss_size
Definition posix_signal.h:193
Definition posix_signal.h:53
long tv_nsec
Definition posix_signal.h:55
time_t tv_sec
Definition posix_signal.h:54
Definition posix_signal.h:180
stack_t uc_stack
Definition posix_signal.h:183
struct ucontext * uc_link
Definition posix_signal.h:181
mcontext_t uc_mcontext
Definition posix_signal.h:184
sigset_t uc_sigmask
Definition posix_signal.h:182
Definition posix_signal.h:124
void * sival_ptr
Definition posix_signal.h:126
int sival_int
Definition posix_signal.h:125