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
49#if __STDC_VERSION__ >= 201112L
52#if !defined(_TIMESPEC_DECLARED) && !defined(__timespec_defined)
57#define _TIMESPEC_DECLARED
58#define __timespec_defined
65#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
67#define SIGRTMAX (SIGRTMIN + CONFIG_POSIX_RTSIG_MAX)
69#define SIGRTMAX SIGRTMIN
72#if !defined(_SIGSET_T_DECLARED) && !defined(__sigset_t_defined)
76#define _SIGSET_T_DECLARED
77#define __sigset_t_defined
80#if !defined(_PID_T_DECLARED) && !defined(__pid_t_defined)
82#define _PID_T_DECLARED
83#define __pid_t_defined
86#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
88#if !defined(_PTHREAD_ATTR_T_DECLARED) && !defined(__pthread_attr_t_defined)
93#define _PTHREAD_ATTR_T_DECLARED
94#define __pthread_attr_t_defined
99#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
102#if !defined(_SIGVAL_DECLARED) && !defined(__sigval_defined)
107#define _SIGVAL_DECLARED
108#define __sigval_defined
111#if !defined(_SIGEVENT_DECLARED) && !defined(__sigevent_defined)
113#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
121#define _SIGEVENT_DECLARED
122#define __sigevent_defined
126#define SIGEV_SIGNAL 2
127#define SIGEV_THREAD 3
135#if !defined(_SIGINFO_T_DECLARED) && !defined(__siginfo_t_defined)
138#if defined(_XOPEN_STREAMS) || defined(__DOXYGEN__)
146#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
151#define _SIGINFO_T_DECLARED
152#define __siginfo_t_defined
155#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
157#if !defined(_SIGACTION_DECLARED) && !defined(__sigaction_defined)
166#define _SIGACTION_DECLARED
167#define __sigaction_defined
174#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
175#define SA_NOCLDSTOP 0x00000001
176#define SA_ONSTACK 0x00000002
178#define SA_RESETHAND 0x00000004
179#define SA_RESTART 0x00000008
180#define SA_SIGINFO 0x00000010
181#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
182#define SA_NOCLDWAIT 0x00000020
184#define SA_NODEFER 0x00000040
185#define SS_ONSTACK 0x00000001
186#define SS_DISABLE 0x00000002
187#define MINSIGSTKSZ 4096
190#if !defined(_MCONTEXT_T_DECLARED) && !defined(__mcontext_t_defined)
196#define _MCONTEXT_T_DECLARED
197#define __mcontext_defined
200#if !defined(_UCONTEXT_T_DECLARED) && !defined(__ucontext_t_defined)
207#define _UCONTEXT_T_DECLARED
208#define __ucontext_defined
211#if !defined(_STACK_T_DECLARED) && !defined(__stack_t_defined)
217#define _STACK_T_DECLARED
218#define __stack_t_defined
225#if !defined(_SIGHANDLER_T_DECLARED) && !defined(__sighandler_t_defined)
227#define _SIGHANDLER_T_DECLARED
228#define __sighandler_t_defined
232#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
237#if defined(_POSIX_THREADS) || defined(__DOXYGEN__)
242#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
248#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
254#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
261#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
266#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
269#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
274#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
279#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
286#if !defined(SIGINT) || defined(__DOXYGEN__)
290#if !defined(SIGILL) || defined(__DOXYGEN__)
294#if !defined(SIGABRT) || defined(__DOXYGEN__)
298#if !defined(SIGFPE) || defined(__DOXYGEN__)
303#if !defined(SIGSEGV) || defined(__DOXYGEN__)
309#if !defined(SIGTERM) || defined(__DOXYGEN__)
329#if defined(_POSIX_REALTIME_SIGNALS) || defined(__DOXYGEN__)
352#define SEGV_MAPERR 18
353#define SEGV_ACCERR 19
360#if defined(_XOPEN_SOURCE) || defined(__DOXYGEN__)
370#define CLD_TRAPPED 28
371#define CLD_STOPPED 29
372#define CLD_CONTINUED 30
374#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:348
long pid_t
Definition posix_signal.h:81
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:67
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)
void(* sighandler_t)(int sig)
Definition posix_signal.h:226
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:191
unsigned long flags
Definition posix_signal.h:194
unsigned long gregs[32]
Definition posix_signal.h:193
Definition posix_signal.h:89
void * stack
Definition posix_signal.h:90
unsigned int details[2]
Definition posix_signal.h:91
Definition posix_signal.h:158
void(* sa_sigaction)(int sig, siginfo_t *info, void *context)
Definition posix_signal.h:161
sigset_t sa_mask
Definition posix_signal.h:163
void(* sa_handler)(int sig)
Definition posix_signal.h:160
int sa_flags
Definition posix_signal.h:164
Definition posix_signal.h:112
void(* sigev_notify_function)(union sigval value)
Definition posix_signal.h:115
pthread_attr_t * sigev_notify_attributes
Definition posix_signal.h:114
int sigev_signo
Definition posix_signal.h:119
union sigval sigev_value
Definition posix_signal.h:117
int sigev_notify
Definition posix_signal.h:118
Definition posix_signal.h:136
int si_code
Definition posix_signal.h:145
uid_t si_uid
Definition posix_signal.h:143
int si_signo
Definition posix_signal.h:144
pid_t si_pid
Definition posix_signal.h:142
long si_band
Definition posix_signal.h:139
int si_status
Definition posix_signal.h:149
void * si_addr
Definition posix_signal.h:137
int si_errno
Definition posix_signal.h:147
union sigval si_value
Definition posix_signal.h:141
Definition posix_signal.h:73
unsigned long sig[DIV_ROUND_UP((32+CONFIG_POSIX_RTSIG_MAX)+1, BITS_PER_LONG)]
Definition posix_signal.h:74
Definition posix_signal.h:212
void * ss_sp
Definition posix_signal.h:213
int ss_flags
Definition posix_signal.h:215
size_t ss_size
Definition posix_signal.h:214
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:201
stack_t uc_stack
Definition posix_signal.h:204
struct ucontext * uc_link
Definition posix_signal.h:202
mcontext_t uc_mcontext
Definition posix_signal.h:205
sigset_t uc_sigmask
Definition posix_signal.h:203
Definition posix_signal.h:103
void * sival_ptr
Definition posix_signal.h:105
int sival_int
Definition posix_signal.h:104