This complementary patch defines SIGINFO as a synonym for SIGPWR on every architecture supported by the kernel. SIGPWR looks like a nice candidate for this role, because it is defined on every supported arch; it is currently only used to inform PID 1 of power failures, and daemons that care about low-level events do not tend to have a controlling terminal. However, on sparcs SIGPWR is a synonym for SIGLOST, a signal unique to that architecture, with a narrow set of intended uses that do not combine well with interactively requesting status. SIGLOST is not used by any kernel code at the moment. SIGINFO is not defined as a real-time signal for the following reasons: * SIGRTMIN and SIGRTMAX can not be changed without breaking userspace * the lack of queuing is irrelevant for the main use-case, since the consumption rate of information by a terminal user and the practical tty keypress processing rates are much slower than SIGINFO processing by the line discipline. Signed-off-by: Arseny Maslennikov <ar@xxxxxxxxx> --- arch/arm/include/uapi/asm/signal.h | 1 + arch/h8300/include/uapi/asm/signal.h | 1 + arch/ia64/include/uapi/asm/signal.h | 1 + arch/m68k/include/uapi/asm/signal.h | 1 + arch/mips/include/uapi/asm/signal.h | 1 + arch/parisc/include/uapi/asm/signal.h | 1 + arch/powerpc/include/uapi/asm/signal.h | 1 + arch/s390/include/uapi/asm/signal.h | 1 + arch/sparc/include/uapi/asm/signal.h | 2 ++ arch/x86/include/uapi/asm/signal.h | 1 + arch/xtensa/include/uapi/asm/signal.h | 1 + include/uapi/asm-generic/signal.h | 1 + 12 files changed, 13 insertions(+) diff --git a/arch/arm/include/uapi/asm/signal.h b/arch/arm/include/uapi/asm/signal.h index 9b4185ba4..b80b53a17 100644 --- a/arch/arm/include/uapi/asm/signal.h +++ b/arch/arm/include/uapi/asm/signal.h @@ -50,6 +50,7 @@ typedef unsigned long sigset_t; #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/arch/h8300/include/uapi/asm/signal.h b/arch/h8300/include/uapi/asm/signal.h index e15521037..7a2b783af 100644 --- a/arch/h8300/include/uapi/asm/signal.h +++ b/arch/h8300/include/uapi/asm/signal.h @@ -50,6 +50,7 @@ typedef unsigned long sigset_t; #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/arch/ia64/include/uapi/asm/signal.h b/arch/ia64/include/uapi/asm/signal.h index aa98ff1b9..b4c98cb17 100644 --- a/arch/ia64/include/uapi/asm/signal.h +++ b/arch/ia64/include/uapi/asm/signal.h @@ -45,6 +45,7 @@ #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 /* signal 31 is no longer "unused", but the SIGUNUSED macro remains for backwards compatibility */ #define SIGUNUSED 31 diff --git a/arch/m68k/include/uapi/asm/signal.h b/arch/m68k/include/uapi/asm/signal.h index 915cc755a..a0b4e4108 100644 --- a/arch/m68k/include/uapi/asm/signal.h +++ b/arch/m68k/include/uapi/asm/signal.h @@ -50,6 +50,7 @@ typedef unsigned long sigset_t; #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/arch/mips/include/uapi/asm/signal.h b/arch/mips/include/uapi/asm/signal.h index 53104b10a..975a6f0d3 100644 --- a/arch/mips/include/uapi/asm/signal.h +++ b/arch/mips/include/uapi/asm/signal.h @@ -43,6 +43,7 @@ typedef unsigned long old_sigset_t; /* at least 32 bits */ #define SIGCHLD 18 /* Child status has changed (POSIX). */ #define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ #define SIGPWR 19 /* Power failure restart (System V). */ +#define SIGINFO SIGPWR /* Keyboard status request (4.2 BSD). */ #define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ #define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ #define SIGIO 22 /* I/O now possible (4.2 BSD). */ diff --git a/arch/parisc/include/uapi/asm/signal.h b/arch/parisc/include/uapi/asm/signal.h index d38563a39..fe2e00d59 100644 --- a/arch/parisc/include/uapi/asm/signal.h +++ b/arch/parisc/include/uapi/asm/signal.h @@ -22,6 +22,7 @@ #define SIGUSR2 17 #define SIGCHLD 18 #define SIGPWR 19 +#define SIGINFO SIGPWR #define SIGVTALRM 20 #define SIGPROF 21 #define SIGIO 22 diff --git a/arch/powerpc/include/uapi/asm/signal.h b/arch/powerpc/include/uapi/asm/signal.h index 85b0a7aa4..e7f388590 100644 --- a/arch/powerpc/include/uapi/asm/signal.h +++ b/arch/powerpc/include/uapi/asm/signal.h @@ -53,6 +53,7 @@ typedef struct { #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/arch/s390/include/uapi/asm/signal.h b/arch/s390/include/uapi/asm/signal.h index 9a14a611e..12ee62987 100644 --- a/arch/s390/include/uapi/asm/signal.h +++ b/arch/s390/include/uapi/asm/signal.h @@ -58,6 +58,7 @@ typedef unsigned long sigset_t; #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/arch/sparc/include/uapi/asm/signal.h b/arch/sparc/include/uapi/asm/signal.h index ff9505923..b65516319 100644 --- a/arch/sparc/include/uapi/asm/signal.h +++ b/arch/sparc/include/uapi/asm/signal.h @@ -71,6 +71,8 @@ #define SIGWINCH 28 #define SIGLOST 29 #define SIGPWR SIGLOST +/* XXX: is it OK for SIGINFO to collide with LOST? */ +#define SIGINFO SIGPWR #define SIGUSR1 30 #define SIGUSR2 31 diff --git a/arch/x86/include/uapi/asm/signal.h b/arch/x86/include/uapi/asm/signal.h index e5745d593..1539bb288 100644 --- a/arch/x86/include/uapi/asm/signal.h +++ b/arch/x86/include/uapi/asm/signal.h @@ -55,6 +55,7 @@ typedef unsigned long sigset_t; #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/arch/xtensa/include/uapi/asm/signal.h b/arch/xtensa/include/uapi/asm/signal.h index 005dec5bf..d64423430 100644 --- a/arch/xtensa/include/uapi/asm/signal.h +++ b/arch/xtensa/include/uapi/asm/signal.h @@ -65,6 +65,7 @@ typedef struct { #define SIGPOLL SIGIO /* #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 diff --git a/include/uapi/asm-generic/signal.h b/include/uapi/asm-generic/signal.h index 5c716a952..9f9a1db0d 100644 --- a/include/uapi/asm-generic/signal.h +++ b/include/uapi/asm-generic/signal.h @@ -43,6 +43,7 @@ #define SIGLOST 29 */ #define SIGPWR 30 +#define SIGINFO SIGPWR #define SIGSYS 31 #define SIGUNUSED 31 -- 2.26.2