include/signal.h:Expanding SIGNAL to be consistent with Linux

This commit is contained in:
chenrun1 2023-02-01 17:17:43 +08:00 committed by Xiang Xiao
parent 173212ebc9
commit e6227e1943
3 changed files with 342 additions and 203 deletions

View file

@ -128,57 +128,52 @@
* These are the semi-standard signal definitions: * These are the semi-standard signal definitions:
*/ */
#ifndef CONFIG_SIG_SIGUSR1 #ifndef CONFIG_SIG_HUP
# define SIGUSR1 1 /* User signal 1 */ # define SIGHUP 1
#else #else
# define SIGUSR1 CONFIG_SIG_SIGUSR1 # define SIGHUP CONFIG_SIG_HUP
#endif #endif
#ifndef CONFIG_SIG_SIGUSR2 #ifndef CONFIG_SIG_INT
# define SIGUSR2 2 /* User signal 2 */ # define SIGINT 2
#else #else
# define SIGUSR2 CONFIG_SIG_SIGUSR2 # define SIGINT CONFIG_SIG_INT
#endif #endif
#ifndef CONFIG_SIG_SIGALRM #ifndef CONFIG_SIG_QUIT
# define SIGALRM 3 /* Default signal used with POSIX timers (used only */ # define SIGQUIT 3
/* no other signal is provided) */
#else #else
# define SIGALRM CONFIG_SIG_SIGALRM # define SIGQUIT CONFIG_SIG_QUIT
#endif #endif
#ifdef CONFIG_SCHED_HAVE_PARENT #ifndef CONFIG_SIG_ILL
# ifndef CONFIG_SIG_SIGCHLD # define SIGILL 4
# define SIGCHLD 4 /* Used by child threads to signal parent thread */
# else
# define SIGCHLD CONFIG_SIG_SIGCHLD
# endif
#endif
#ifdef CONFIG_FS_AIO
# ifndef CONFIG_SIG_POLL
# define SIGPOLL 5 /* Sent when an asynchronous I/O event occurs */
# else
# define SIGPOLL CONFIG_SIG_POLL
# endif
#endif
#ifndef CONFIG_SIG_STOP
# define SIGSTOP 6
#else #else
# define SIGSTOP CONFIG_SIG_STOP # define SIGILL CONFIG_SIG_ILL
#endif #endif
#ifndef CONFIG_SIG_TSTP #ifndef CONFIG_SIG_TRAP
# define SIGTSTP 7 # define SIGTRAP 5
#else #else
# define SIGTSTP CONFIG_SIG_TSTP # define SIGTRAP CONFIG_SIG_TRAP
#endif #endif
#ifndef CONFIG_SIG_CONT #ifndef CONFIG_SIG_ABRT
# define SIGCONT 8 # define SIGABRT 6
#else #else
# define SIGCONT CONFIG_SIG_CONT # define SIGABRT CONFIG_SIG_ABRT
#endif
#ifndef CONFIG_SIG_BUS
# define SIGBUS 7
#else
# define SIGBUS CONFIG_SIG_BUS
#endif
#ifndef CONFIG_SIG_FPE
# define SIGFPE 8
#else
# define SIGFPE CONFIG_SIG_FPE
#endif #endif
#ifndef CONFIG_SIG_KILL #ifndef CONFIG_SIG_KILL
@ -187,22 +182,22 @@
# define SIGKILL CONFIG_SIG_KILL # define SIGKILL CONFIG_SIG_KILL
#endif #endif
#ifndef CONFIG_SIG_INT #ifndef CONFIG_SIG_USR1
# define SIGINT 10 # define SIGUSR1 10 /* User signal 1 */
#else #else
# define SIGINT CONFIG_SIG_INT # define SIGUSR1 CONFIG_SIG_USR1
#endif #endif
#ifndef CONFIG_SIG_QUIT #ifndef CONFIG_SIG_SEGV
# define SIGQUIT 11 # define SIGSEGV 11
#else #else
# define SIGQUIT CONFIG_SIG_QUIT # define SIGSEGV CONFIG_SIG_SEGV
#endif #endif
#ifndef CONFIG_SIG_TERM #ifndef CONFIG_SIG_USR2
# define SIGTERM 12 # define SIGUSR2 12 /* User signal 2 */
#else #else
# define SIGTERM CONFIG_SIG_TERM # define SIGUSR2 CONFIG_SIG_USR2
#endif #endif
#ifndef CONFIG_SIG_PIPE #ifndef CONFIG_SIG_PIPE
@ -211,41 +206,98 @@
# define SIGPIPE CONFIG_SIG_PIPE # define SIGPIPE CONFIG_SIG_PIPE
#endif #endif
#ifndef CONFIG_SIG_HUP #ifndef CONFIG_SIG_ALRM
# define SIGHUP 14 # define SIGALRM 14 /* Default signal used with POSIX timers (used only */
/* no other signal is provided) */
#else #else
# define SIGHUP CONFIG_SIG_HUP # define SIGALRM CONFIG_SIG_ALRM
#endif
#ifndef CONFIG_SIG_TERM
# define SIGTERM 15
#else
# define SIGTERM CONFIG_SIG_TERM
#endif
#ifndef CONFIG_SIG_CHLD
# define SIGCHLD 17
#else
# define SIGCHLD CONFIG_SIG_CHLD
#endif
#ifndef CONFIG_SIG_CONT
# define SIGCONT 18
#else
# define SIGCONT CONFIG_SIG_CONT
#endif
#ifndef CONFIG_SIG_STOP
# define SIGSTOP 19
#else
# define SIGSTOP CONFIG_SIG_STOP
#endif
#ifndef CONFIG_SIG_TSTP
# define SIGTSTP 20
#else
# define SIGTSTP CONFIG_SIG_TSTP
#endif #endif
#ifndef CONFIG_SIG_TTIN #ifndef CONFIG_SIG_TTIN
# define SIGTTIN 15 # define SIGTTIN 21
#else #else
# define SIGTTIN CONFIG_SIG_TTIN # define SIGTTIN CONFIG_SIG_TTIN
#endif #endif
#ifndef CONFIG_SIG_FPE #ifndef CONFIG_SIG_TTOU
# define SIGFPE 16 # define SIGTTOU 22
#else #else
# define SIGFPE CONFIG_SIG_FPE # define SIGTTOU CONFIG_SIG_TTOU
#endif #endif
#ifndef CONFIG_SIG_ILL #ifndef CONFIG_SIG_URG
# define SIGILL 17 # define SIGURG 23
#else #else
# define SIGILL CONFIG_SIG_ILL # define SIGURG CONFIG_SIG_URG
#endif #endif
#ifndef CONFIG_SIG_SEGV #ifndef CONFIG_SIG_XCPU
# define SIGSEGV 18 # define SIGXCPU 24
#else #else
# define SIGSEGV CONFIG_SIG_SEGV # define SIGXCPU CONFIG_SIG_XCPU
#endif #endif
#ifndef CONFIG_SIG_XFSZ
# define SIGXFSZ 25
#else
# define SIGXFSZ CONFIG_SIG_XFSZ
#endif
#ifndef CONFIG_SIG_VTALRM
# define SIGVTALRM 26
#else
# define SIGVTALRM CONFIG_SIG_VTALRM
#endif
#ifndef CONFIG_SIG_PROF
# define SIGPROF 27
#else
# define SIGPROF CONFIG_SIG_PROF
#endif
#ifndef CONFIG_SIG_POLL
# define SIGPOLL 29
#else
# define SIGPOLL CONFIG_SIG_POLL
#endif
#define SIGIO SIGPOLL
/* The following are non-standard signal definitions */ /* The following are non-standard signal definitions */
#ifndef CONFIG_DISABLE_PTHREAD #ifndef CONFIG_DISABLE_PTHREAD
# ifndef CONFIG_SIG_SIGCONDTIMEDOUT # ifndef CONFIG_SIG_SIGCONDTIMEDOUT
# define SIGCONDTIMEDOUT 19 /* Used in the implementation of pthread_cond_timedwait */ # define SIGCONDTIMEDOUT 30 /* Used in the implementation of pthread_cond_timedwait */
# else # else
# define SIGCONDTIMEDOUT CONFIG_SIG_SIGCONDTIMEDOUT # define SIGCONDTIMEDOUT CONFIG_SIG_SIGCONDTIMEDOUT
# endif # endif
@ -255,7 +307,7 @@
#if defined(CONFIG_SCHED_WORKQUEUE) || defined(CONFIG_PAGING) #if defined(CONFIG_SCHED_WORKQUEUE) || defined(CONFIG_PAGING)
# ifndef CONFIG_SIG_SIGWORK # ifndef CONFIG_SIG_SIGWORK
# define SIGWORK 20 /* Used to wake up the work queue */ # define SIGWORK 31 /* Used to wake up the work queue */
# else # else
# define SIGWORK CONFIG_SIG_SIGWORK # define SIGWORK CONFIG_SIG_SIGWORK
# endif # endif

View file

@ -1367,6 +1367,14 @@ if SIG_DEFAULT
comment "Per-signal Default Actions" comment "Per-signal Default Actions"
config SIG_SIGKILL_ACTION
bool "Enable all SIGKILL signals"
default y
---help---
Enable the default action for SIGHUP SIGILL SIGTRAP SIGABRT SIGBUS
SIGFPE SIGINT SIGKILL SIGSEGV SIGQUIT SIGTERM SIGXCPU AND
SIGXFSZ (terminate the task).
config SIG_SIGUSR1_ACTION config SIG_SIGUSR1_ACTION
bool "SIGUSR1" bool "SIGUSR1"
default n default n
@ -1385,15 +1393,37 @@ config SIG_SIGUSR2_ACTION
Backward compatible behavior would require that the application use Backward compatible behavior would require that the application use
sigaction() to ignore SIGUSR2. sigaction() to ignore SIGUSR2.
config SIG_SIGALRM_ACTION config SIG_SIGPIPE_ACTION
bool "SIGALRM" bool "SIGPIPE"
default n default n
---help--- ---help---
Enable the default action for SIGALRM (terminate the task) Enable the default action for SIGPIPE (terminate the task).
config SIG_SIGALRM_ACTION
bool "SIGALRM SIGVTALRM"
default n
---help---
Enable the default action for SIGALRM AND SIGVTALRM(terminate the task)
Make sure that your applications are expecting this POSIX behavior. Make sure that your applications are expecting this POSIX behavior.
Backward compatible behavior would require that the application use Backward compatible behavior would require that the application use
sigaction() to ignore SIGALRM. sigaction() to ignore SIGALRM.
config SIG_SIGSTOP_ACTION
bool "SIGSTOP SIGTSTP SIGCONT SIGTTIN SIGTTOU"
default y
---help---
Enable the default action for SIGSTOP SIGTSTP SIGCONT SIGTTIN SIGTTOU
(suspend the task) and SIGCONT (resume the task).
config SIG_SIGPROF_ACTION
bool "SIGPROF"
default n
---help---
Enable the default action for SIGPROF (nxsig_abnormal_termination)
Make sure that your applications are expecting this POSIX behavior.
Backward compatible behavior would require that the application use
sigaction() to ignore SIGPROF.
config SIG_SIGPOLL_ACTION config SIG_SIGPOLL_ACTION
bool "SIGPOLL" bool "SIGPOLL"
default n default n
@ -1404,120 +1434,99 @@ config SIG_SIGPOLL_ACTION
Backward compatible behavior would require that the application use Backward compatible behavior would require that the application use
sigaction() to ignore SIGPOLL. sigaction() to ignore SIGPOLL.
config SIG_SIGSTOP_ACTION
bool "SIGSTOP SIGTSTP, and SIGCONT"
default y
---help---
Enable the default action for SIGSTOP and SIGTSTP (suspend the
task) and SIGCONT (resume the task).
config SIG_SIGKILL_ACTION
bool "SIGINT SIGKILL SIGQUIT and SIGTERM"
default y
---help---
Enable the default action for SIGINT and SIGKILL (terminate the
task).
config SIG_SIGPIPE_ACTION
bool "SIGPIPE"
default y
---help---
Enable the default action for SIGPIPE (terminate the task).
endif # SIG_DEFAULT endif # SIG_DEFAULT
menu "Signal Numbers" menu "Signal Numbers"
comment "Standard Signal Numbers" comment "Standard Signal Numbers"
config SIG_SIGUSR1 config SIG_HUP
int "SIGUSR1" int "SIGHUP"
default 1 default 1
---help--- ---help---
Value of standard user signal 1 (SIGUSR1). Default: 1 The SIGHUP would be sent to programs when the serial line was dropped,
often because the connected user terminated the connection by hanging up
config SIG_SIGUSR2 the modem. The system would detect the line was dropped via the lost
int "SIGUSR2" Data Carrier Detect (DCD) signal.
default 2
---help---
Value of standard user signal 2 (SIGUSR2). Default: 2
config SIG_SIGALRM
int "SIGALRM"
default 3
---help---
Default the signal number used with POSIX timers (SIGALRM).
Default: 3
config SIG_SIGCHLD
int "SIGCHLD"
default 4
depends on SCHED_HAVE_PARENT
---help---
The SIGCHLD signal is sent to the parent of a child process when it
exits, is interrupted (stopped), or resumes after being interrupted.
Default: 4
config SIG_POLL
int "SIGPOLL"
default 5
depends on FS_AIO
---help---
The SIGPOLL signal is sent to a process when an asynchronous I/O
event occurs (meaning it has been polled). Default: 5
if SIG_DEFAULT
config SIG_STOP
int "SIGSTOP"
default 6
---help---
Suspend/pause a task. SIGSTOP may not be caught or ignored.
config SIG_TSTP
int "SIGTSTP"
default 7
---help---
Suspend/pause a task. Unlike SIGSTOP, this signal can be caught or
ignored.
config SIG_CONT
int "SIGCONT"
default 8
---help---
Resume a suspended/paused task. SIGSTOP only has an action when
send to a stopped task. SIGCONT is ignored by other task. SIGCONT
may not be caught or ignored by a stopped task.
config SIG_KILL
int "SIGKILL"
default 9
---help---
The SIGKILL signal is sent to cause a task termination event.
SIGKILL may not be caught or ignored.
config SIG_INT config SIG_INT
int "SIGINT" int "SIGINT"
default 10 default 2
---help--- ---help---
The SIGINT signal is sent to cause a task termination event. The SIGINT signal is sent to cause a task termination event.
SIGINT may be ignored or caught by the receiving task. SIGINT may be ignored or caught by the receiving task.
config SIG_QUIT config SIG_QUIT
int "SIGQUIT" int "SIGQUIT"
default 3
---help---
Similar to SIGINT, but controlled by the QUIT character (usually Ctrl+\).
When a process exits due to a SIGQUIT will generate a core file when it exits,
in the sense that it is similar to a program error signal.
config SIG_ILL
int "SIGILL"
default 4
---help---
The SIGILL executed an illegal instruction. It is usually because of an
error in the executable file itself or an attempt to execute a data segment.
This signal may also be generated when the stack overflows.
config SIG_TRAP
int "SIGTRAP"
default 5
---help---
Trace trap signal, generated by a breakpoint or other trap instruction.
Used by debugger.
config SIG_ABRT
int "SIGABRT"
default 6
---help---
config SIG_BUS
int "SIGBUS"
default 7
---help---
Signal generated by system bus error, illegal address, including memory
address alignment (alignment) error. eg: Accessing an integer four words long,
but its address is not a multiple of 4.
config SIG_FPE
int "SIGFPE"
default 8
---help---
Issued in case of a fatal arithmetic error. This includes not only
floating point errors, but also overflow and all other arithmetic errors such
as division by zero.
config SIG_KILL
int "SIGKILL"
default 9
---help---
A signal that can terminate any process and can only be sent by the administrator;
the signal will not be captured and ignored.
config SIG_USR1
int "SIGUSR1"
default 10
---help---
Value of standard user signal 1 (SIGUSR1). Default: 10
config SIG_SEGV
int "SIGSEGV"
default 11 default 11
---help--- ---help---
The SIGINT signal is sent to cause a task termination event. Illegal use of memory address signal by attempting to access memory that is not
SIGQUIT may be ignored or caught by the receiving task. allocated to you, or attempting to write to a memory address that does not have
write permission.
config SIG_TERM config SIG_USR2
int "SIGTERM" int "SIGUSR2"
default 12 default 12
---help--- ---help---
The SIGINT signal is sent to cause a task termination event. Value of standard user signal 2 (SIGUSR2). Default: 12
SIGTERM may be ignored or caught by the receiving task.
endif # SIG_DEFAULT
config SIG_PIPE config SIG_PIPE
int "SIGPIPE" int "SIGPIPE"
@ -1527,18 +1536,53 @@ config SIG_PIPE
This signal is generated when write on a pipe with no one to read it. This signal is generated when write on a pipe with no one to read it.
SIGPIPE may be ignored. SIGPIPE may be ignored.
config SIG_HUP config SIG_ALRM
int "SIGHUP" int "SIGALRM"
default 14 default 14
---help--- ---help---
The SIGHUP would be sent to programs when the serial line was dropped, Default the signal number used with POSIX timers (SIGALRM).
often because the connected user terminated the connection by hanging up Default: 14
the modem. The system would detect the line was dropped via the lost
Data Carrier Detect (DCD) signal. config SIG_TERM
int "SIGTERM"
default 15
---help---
The SIGINT signal is sent to cause a task termination event.
SIGTERM may be ignored or caught by the receiving task.
config SIG_CHLD
int "SIGCHLD"
default 17
depends on SCHED_HAVE_PARENT
---help---
The SIGCHLD signal is sent to the parent of a child process when it
exits, is interrupted (stopped), or resumes after being interrupted.
config SIG_CONT
int "SIGCONT"
default 18
---help---
Resume a suspended/paused task. SIGSTOP only has an action when
send to a stopped task. SIGCONT is ignored by other task. SIGCONT
may not be caught or ignored by a stopped task.
config SIG_STOP
int "SIGSTOP"
default 19
---help---
Enable the default action for SIGSTOP and SIGTSTP (suspend the
task) and SIGCONT (resume the task).
config SIG_TSTP
int "SIGTSTP"
default 20
---help---
Suspend pause a task. Unlike SIGSTOP, this signal can be caught or
ignored.
config SIG_TTIN config SIG_TTIN
int "SIGTTIN" int "SIGTTIN"
default 15 default 21
---help--- ---help---
A process cannot read from the users terminal while it is running as a A process cannot read from the users terminal while it is running as a
background job. When any process in a background job tries to read from background job. When any process in a background job tries to read from
@ -1547,48 +1591,76 @@ config SIG_TTIN
information about how this interacts with the terminal driver, see Access information about how this interacts with the terminal driver, see Access
to the Controlling Terminal. to the Controlling Terminal.
config SIG_FPE config SIG_TTOU
int "SIGFPE" int "SIGTTOU"
default 16 default 22
---help--- ---help---
The SIGFPE is issued when fatal arithmetic operation errors occur. Similar to SIGTTIN, the signal generated by the interrupt driver when a
It includes not only floating-point operation errors, but also all other background job wants to read data from the user terminal. The signal does
arithmetic errors such as overflow and divisor zero. not occur and a read error occurs when the process reading the data blocks
or ignores the signal, or when the process group in which the data is being
read is an isolated process group. errno is set to ETO. The only difference
is that the process can choose to write in the background.
config SIG_ILL config SIG_URG
int "SIGILL" int "SIGURG"
default 17 default 23
---help--- ---help---
The SIGILL executed an illegal instruction. It is usually because of an An emergency situation on the socket is the message sent.
error in the executable file itself or an attempt to execute a data segment.
This signal may also be generated when the stack overflows.
config SIG_SEGV config SIG_XCPU
int "SIGSEGV" int "SIGXCPU"
default 18 default 24
---help--- ---help---
The SIGSEGV is sent when an attempt is made to access memory that is Exceeding the CPU time resource limit. This limit can be read/changed by
not allocated to itself, or to write data to a memory address that does getrlimit/setrlimit
not have write permission, or to illegally use the memory address signal.
config SIG_XFSZ
int "SIGXFSZ"
default 25
---help---
Exceed the file size resource limit.
config SIG_VTALRM
int "SIGVTALRM"
default 26
---help---
Virtual clock signal. Similar to SIGALRM, but calculates the CPU time
occupied by the process.
config SIG_PROF
int "SIGPROF"
default 27
---help---
Similar to SIGALRM/SIGVTALRM, but includes the CPU time used by the process
and the time of system calls.
config SIG_POLL
int "SIGPOLL"
default 29
depends on FS_AIO
---help---
The SIGPOLL signal is sent to a process when an asynchronous I/O
event occurs (meaning it has been polled).
comment "Non-standard Signal Numbers" comment "Non-standard Signal Numbers"
config SIG_SIGCONDTIMEDOUT config SIG_SIGCONDTIMEDOUT
int "SIGCONDTIMEDOUT" int "SIGCONDTIMEDOUT"
default 19 default 30
depends on !DISABLE_PTHREAD depends on !DISABLE_PTHREAD
---help--- ---help---
This non-standard signal number is used the implementation of This non-standard signal number is used the implementation of
pthread_cond_timedwait(). Default 16. pthread_cond_timedwait(). Default 30.
config SIG_SIGWORK config SIG_SIGWORK
int "SIGWORK" int "SIGWORK"
default 20 default 31
depends on SCHED_WORKQUEUE || LIBC_USRWORK depends on SCHED_WORKQUEUE || LIBC_USRWORK
---help--- ---help---
SIGWORK is a non-standard signal used to wake up various internal SIGWORK is a non-standard signal used to wake up various internal
NuttX worker threads. This setting specifies the signal number NuttX worker threads. This setting specifies the signal number
that will be used for SIGWORK. Default: 17 that will be used for SIGWORK. Default: 31
endmenu # Signal Numbers endmenu # Signal Numbers
endmenu # Signal Configuration endmenu # Signal Configuration

View file

@ -105,31 +105,46 @@ static void nxsig_setup_default_action(FAR struct task_group_s *group,
static const struct nxsig_defaction_s g_defactions[] = static const struct nxsig_defaction_s g_defactions[] =
{ {
#ifdef CONFIG_SIG_SIGKILL_ACTION
{ SIGHUP, 0, nxsig_abnormal_termination },
{ SIGINT, 0, nxsig_abnormal_termination },
{ SIGQUIT, 0, nxsig_abnormal_termination },
{ SIGILL, 0, nxsig_abnormal_termination },
{ SIGTRAP, 0, nxsig_abnormal_termination },
{ SIGABRT, 0, nxsig_abnormal_termination },
{ SIGBUS, 0, nxsig_abnormal_termination },
{ SIGFPE, 0, nxsig_abnormal_termination },
{ SIGKILL, SIG_FLAG_NOCATCH, nxsig_abnormal_termination },
{ SIGSEGV, 0, nxsig_abnormal_termination },
{ SIGTERM, 0, nxsig_abnormal_termination },
{ SIGXCPU, 0, nxsig_abnormal_termination },
{ SIGXFSZ, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGUSR1_ACTION #ifdef CONFIG_SIG_SIGUSR1_ACTION
{ SIGUSR1, 0, nxsig_abnormal_termination }, { SIGUSR1, 0, nxsig_abnormal_termination },
#endif #endif
#ifdef CONFIG_SIG_SIGUSR2_ACTION #ifdef CONFIG_SIG_SIGUSR2_ACTION
{ SIGUSR2, 0, nxsig_abnormal_termination }, { SIGUSR2, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGALRM_ACTION
{ SIGALRM, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGPOLL_ACTION
{ SIGPOLL, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGSTOP_ACTION
{ SIGSTOP, SIG_FLAG_NOCATCH, nxsig_stop_task },
{ SIGTSTP, 0, nxsig_stop_task },
{ SIGCONT, SIG_FLAG_NOCATCH, nxsig_null_action },
#endif
#ifdef CONFIG_SIG_SIGKILL_ACTION
{ SIGINT, 0, nxsig_abnormal_termination },
{ SIGKILL, SIG_FLAG_NOCATCH, nxsig_abnormal_termination },
{ SIGQUIT, 0, nxsig_abnormal_termination },
{ SIGTERM, 0, nxsig_abnormal_termination },
#endif #endif
#ifdef CONFIG_SIG_SIGPIPE_ACTION #ifdef CONFIG_SIG_SIGPIPE_ACTION
{ SIGPIPE, 0, nxsig_abnormal_termination } { SIGPIPE, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGALRM_ACTION
{ SIGALRM, 0, nxsig_abnormal_termination },
{ SIGVTALRM, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGSTOP_ACTION
{ SIGCONT, SIG_FLAG_NOCATCH, nxsig_null_action },
{ SIGSTOP, SIG_FLAG_NOCATCH, nxsig_stop_task },
{ SIGTSTP, 0, nxsig_stop_task },
{ SIGTTIN, 0, nxsig_stop_task },
{ SIGTTOU, 0, nxsig_stop_task },
#endif
#ifdef CONFIG_SIG_SIGPROF_ACTION
{ SIGPROF, 0, nxsig_abnormal_termination },
#endif
#ifdef CONFIG_SIG_SIGPOLL_ACTION
{ SIGPOLL, 0, nxsig_abnormal_termination },
#endif #endif
}; };