mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 10:58:49 +08:00
include/signal.h:Expanding SIGNAL to be consistent with Linux
This commit is contained in:
parent
173212ebc9
commit
e6227e1943
3 changed files with 342 additions and 203 deletions
170
include/signal.h
170
include/signal.h
|
@ -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
|
||||||
|
|
320
sched/Kconfig
320
sched/Kconfig
|
@ -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 user’s terminal while it is running as a
|
A process cannot read from the user’s 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
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue