| <assertions> |
| <assertion id="1" tag="ref:XBD6:10713:10996"> |
| The signal.h header file exists |
| </assertion> |
| <assertion id="2" tag="ref:XBD6:10722:10729"> |
| The signal.h header defines the symbols SIG_DFL, SIG_ERR, SIG_HOLD |
| and SIG_IGN as 'void (*) int'. |
| </assertion> |
| <assertion id="3" tag="ref:XBD6:10730:10732"> |
| The signal.h header defines sig_atomic_t. |
| </assertion> |
| <assertion id="4" tag="ref:XBD6:10733:10733"> |
| The signal.h header defines sigset_t. |
| </assertion> |
| <assertion id="5" tag="ref:XBD6:10734:10734"> |
| The sys/types.h header defines pid_t. |
| </assertion> |
| <assertion id="6" tag="ref:XBD6:10735:10741 pt:RTS"> |
| The signal.h header defines a structure named sigevent which has at least: |
| int sigev_notify |
| int sigev_signo |
| union sigval sigev_value |
| void(*)(union sigval) sigev_notify_function |
| (pthread_attr_t *) sigev_notify_attributes |
| </assertion> |
| <assertion id="7" tag="ref:XBD6:10742:10747 pt:RTS"> |
| For sigev_notify (assertion 6), the following values are defined: |
| SIGEV_NONE |
| SIGEV_SIGNAL |
| SIGEV_THREAD |
| </assertion> |
| <assertion id="8" tag="ref:XBD6:10748:10750 pt:RTS"> |
| The sigval union (assertion 6) is defined as: |
| int sival_int |
| void *sival_ptr |
| </assertion> |
| <assertion id="9" tag="ref:XBD6:10751:10753 pt:RTS"> |
| The signal.h header declares SIGRTMIN and SIGRTMAX. These are macros |
| that evaluate to integer expressions for the minimum and maximum signal |
| numbers reserved for realtime signals. |
| </assertion> |
| <assertion id="10" tag="ref:XBD6:10754:10755 pt:RTS"> |
| The range SIGRTMIN-SIGRTMAX doesn't overlap pre-defined signals (see |
| below). |
| </assertion> |
| <assertion id="11" tag="ref:XBD6:10756:10757 pt:RTS"> |
| The SIGRTMIN-SIGRTMAX range includes at least {RTSIG_MAX} signal |
| numbers. |
| </assertion> |
| <assertion id="12" tag="ref:XBD6:10758:10758 pt:RTS"> |
| Realtime signal behavior may or may not be supported for non-realtime |
| signals. This is defined by the implementation. |
| </assertion> |
| <assertion id="13" tag="ref:XBD6:10761:10762"> |
| The value 0 is not used in any signals, but is reserved as the null signal. |
| </assertion> |
| <assertion id="14" tag="ref:XBD6:10765:10797"> |
| The following signals are always (on all implementations) supported: |
| SIGABRT |
| SIGALRM |
| SIGBUS |
| SIGCHLD |
| SIGCONT |
| SIGFPE |
| SIGHUP |
| SIGILL |
| SIGINT |
| SIGKILL |
| SIGPIPE |
| SIGQUIT |
| SIGSEGV |
| SIGSTOP |
| SIGTERM |
| SIGTSTP |
| SIGTTIN |
| SIGTTOU |
| SIGUSR1 |
| SIGUSR2 |
| SIGPOLL |
| SIGPROF |
| SIGSYS |
| SIGTRAP |
| SIGURG |
| SIGVTALRM |
| SIGXCPU |
| SIGXFSZ |
| </assertion> |
| <assertion id="15" tag="ref:XBD6:10808:10817"> |
| The signal.h header declares the struct sigaction which has, at a minimum, |
| the following members: |
| void (*sa_handler)(int) |
| sigset_t sa_mask |
| int sa_flags |
| void (*)(int, siginfo_t *, void *) sa_sigaction |
| </assertion> |
| <assertion id="16" tag="ref:XBD6:10820:10839"> |
| The constants below are declared: |
| SA_NOCLDSTOP |
| SIG_BLOCK |
| SIG_UNBLOCK |
| SIG_SETMASK |
| SA_ONSTACK |
| SA_RESETHAND |
| SA_RESTART |
| SA_SIGINFO |
| SA_NOCLDWAIT |
| SA_NODEFER |
| SS_ONSTACK |
| SS_DISABLE |
| MINSIGSTKSZ |
| SIGSTKSZ |
| </assertion> |
| <assertion id="17" tag="ref:XBD6:10840:10840"> |
| The ucontext.h header shall define ucontext_t. |
| </assertion> |
| <assertion id="18" tag="ref:XBD6:10841:10841"> |
| The ucontext.h header shall define mcontext_t. |
| </assertion> |
| <assertion id="19" tag="ref:XBD6:10842:10846"> |
| The signal.h header defines the structure stack_t which includes the |
| following, at a minimum: |
| void *ss_sp |
| size_t ss_size |
| int ss_flags |
| </assertion> |
| <assertion id="20" tag="ref:XBD6:10847:10850"> |
| The signal.h header defines the structure sigstack which includes the |
| following, at a minimum: |
| int ss_onstack |
| void *ss_sp |
| </assertion> |
| <assertion id="21" tag="ref:XBD6:10852:10864"> |
| The signal.h header defines the structure siginfo_t which includes the |
| following, at a minimum: |
| int si_signo |
| int si_errno |
| int si_code |
| pid_t si_pid |
| uid_t si_uid |
| void *si_addr |
| int si_status |
| long si_band |
| union sigval si_value |
| </assertion> |
| <assertion id="22" tag="ref:XBD6:10867:10910"> |
| The following macros are defined: |
| ILL_ILLOPC |
| ILL_ILLOPN |
| ILL_ILLADR |
| ILL_ILLTRP |
| ILL_PRVOPC |
| ILL_PRVREG |
| ILL_COPROC |
| ILL_BADSTK |
| FPE_INTDIV |
| FPE_INTOVF |
| FPE_FLTDIV |
| FPE_FLTOVF |
| FPE_FLTUND |
| FPE_FLTRES |
| FPE_FLTINV |
| FPE_FLTSUB |
| SEGV_MAPERR |
| SEGV_ACCERR |
| BUS_ADRALN |
| BUS_ADRERR |
| BUS_OBJERR |
| TRAP_BRKPT |
| TRAP_TRACE |
| CLD_EXITED |
| CLD_KILLED |
| CLD_DUMPED |
| CLD_TRAPPED |
| CLD_STOPPED |
| CLD_CONTINUED |
| POLL_IN |
| POLL_OUT |
| POLL_MSG |
| POLL_ERR |
| POLL_PRI |
| POLL_HUP |
| SI_USER |
| SI_QUEUE |
| SI_TIMER |
| SI_ASYNCIO |
| SI_MESGQ |
| </assertion> |
| <assertion id="23" tag="ref:XBD6:10929:10929 pt:XSI"> |
| The function below is declared: |
| void (*bsd_signal(int, void (*)(int)))(int); |
| </assertion> |
| <assertion id="24" tag="ref:XBD6:10930:10930 pt:CX"> |
| The function below is declared: |
| int kill(pid_t, int); |
| </assertion> |
| <assertion id="25" tag="ref:XBD6:10931:10931 pt:XSI"> |
| The function below is declared: |
| int killpg(pid_t, int); |
| </assertion> |
| <assertion id="26" tag="ref:XBD6:10932:10932 pt:THR"> |
| The function below is declared: |
| int pthread_kill(pthread_t, int); |
| </assertion> |
| <assertion id="27" tag="ref:XBD6:10933:10933"> |
| The function below is declared: |
| int pthread_sigmask(int, const sigset_t *, sigset_t *); |
| </assertion> |
| <assertion id="28" tag="ref:XBD6:10934:10934"> |
| The function below is declared: |
| int raise(int); |
| </assertion> |
| <assertion id="29" tag="ref:XBD6:10935:10936 pt:CX"> |
| The function below is declared: |
| int sigaction(int, const struct sigaction *restrict, |
| struct sigaction *restrict); |
| </assertion> |
| <assertion id="30" tag="ref:XBD6:10937:10937"> |
| The function below is declared: |
| int sigaddset(sigset_t *, int); |
| </assertion> |
| <assertion id="31" tag="ref:XBD6:10938:10938 pt:XSI"> |
| The function below is declared: |
| int sigaltstack(const stack_t *restrict, stack_t *restrict); |
| </assertion> |
| <assertion id="32" tag="ref:XBD6:10939:10939 pt:CX"> |
| The function below is declared: |
| int sigdelset(sigset_t *, int); |
| </assertion> |
| <assertion id="33" tag="ref:XBD6:10940:10940"> |
| The function below is declared: |
| int sigemptyset(sigset_t *); |
| </assertion> |
| <assertion id="34" tag="ref:XBD6:10941:10941"> |
| The function below is declared: |
| int sigfillset(sigset_t *); |
| </assertion> |
| <assertion id="35" tag="ref:XBD6:10942:10942 pt:XSI"> |
| The function below is declared: |
| int sighold(int); |
| </assertion> |
| <assertion id="36" tag="ref:XBD6:10943:10943 pt:XSI"> |
| The function below is declared: |
| int sigignore(int); |
| </assertion> |
| <assertion id="37" tag="ref:XBD6:10944:10944"> |
| The function below is declared: |
| int siginterrupt(int, int); |
| </assertion> |
| <assertion id="38" tag="ref:XBD6:10945:10945 pt:CX"> |
| The function below is declared: |
| int sigismember(const sigset_t *, int); |
| </assertion> |
| <assertion id="39" tag="ref:XBD6:10946:10946"> |
| The function below is declared: |
| void (*signal(int, void (*)(int)))(int); |
| </assertion> |
| <assertion id="40" tag="ref:XBD6:10947:10947 pt:XSI"> |
| The function below is declared: |
| int sigpause(int); |
| </assertion> |
| <assertion id="41" tag="ref:XBD6:10948:10948 pt:CX"> |
| The function below is declared: |
| int sigpending(sigset_t *); |
| </assertion> |
| <assertion id="42" tag="ref:XBD6:10949:10949"> |
| The function below is declared: |
| int sigprocmask(int, const sigset_t *restrict, sigset_t *restrict); |
| </assertion> |
| <assertion id="43" tag="ref:XBD6:10950:10950 pt:RTS"> |
| The function below is declared: |
| int sigqueue(pid_t, int, const union sigval); |
| </assertion> |
| <assertion id="44" tag="ref:XBD6:10951:10951 pt:XSI"> |
| The function below is declared: |
| int sigrelse(int); |
| </assertion> |
| <assertion id="45" tag="ref:XBD6:10952:10952"> |
| The function below is declared: |
| void (*sigset(int, void (*)(int)))(int); |
| </assertion> |
| <assertion id="46" tag="ref:XBD6:10953:10953 pt:CX"> |
| The function below is declared: |
| int sigsuspend(const sigset_t *); |
| </assertion> |
| <assertion id="47" tag="ref:XBD6:10954:10955"> |
| The function below is declared: |
| int sigtimedwait(const sigset_t *restrict, siginfo_t *restrict, |
| const struct timespec *restrict); |
| </assertion> |
| <assertion id="48" tag="ref:XBD6:10956:10956 pt:CX"> |
| The function below is declared: |
| int sigwait(const sigset_t *restrict, int *restrict); |
| </assertion> |
| <assertion id="49" tag="ref:XBD6:10957:10957 pt:RTS"> |
| The function below is declared: |
| int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict); |
| </assertion> |
| <assertion id="50" tag="ref:XBD6:10959:10959"> |
| Inclusion of the signal.h header may make visible all symbols from |
| the time.h header. |
| </assertion> |
| </assertions> |