2012-10-17 04:28:05 +08:00
|
|
|
#ifndef _UAPI_ASM_PARISC_SIGNAL_H
|
|
|
|
#define _UAPI_ASM_PARISC_SIGNAL_H
|
|
|
|
|
|
|
|
#define SIGHUP 1
|
|
|
|
#define SIGINT 2
|
|
|
|
#define SIGQUIT 3
|
|
|
|
#define SIGILL 4
|
|
|
|
#define SIGTRAP 5
|
|
|
|
#define SIGABRT 6
|
|
|
|
#define SIGIOT 6
|
parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux architectures
This patch reduces the value of SIGRTMIN on PARISC from 37 to 32, thus
increasing the number of available RT signals and bring it in sync with other
Linux architectures.
Historically we wanted to natively support HP-UX 32bit binaries with the
PA-RISC Linux port. Because of that we carried the various available signals
from HP-UX (e.g. SIGEMT and SIGLOST) and folded them in between the native
Linux signals. Although this was the right decision at that time, this
required us to increase SIGRTMIN to at least 37 which left us with 27 (64-37)
RT signals.
Those 27 RT signals haven't been a problem in the past, but with the upcoming
importance of systemd we now got the problem that systemd alloctes (hardcoded)
signals up to SIGRTMIN+29 which is beyond our NSIG of 64. Because of that we
have not been able to use systemd on the PARISC Linux port yet.
Of course we could ask the systemd developers to not use those hardcoded
values, but this change is very unlikely, esp. with PA-RISC being a niche
architecture.
The other possibility would be to increase NSIG to e.g. 128, but this would
mean to duplicate most of the existing Linux signal handling code into the
parisc specific Linux kernel tree which would most likely introduce lots of new
bugs beside the code duplication.
The third option is to drop some HP-UX signals and shuffle some other signals
around to bring SIGRTMIN to 32. This is of course an ABI change, but testing
has shown that existing Linux installations are not visibly affected by this
change - most likely because we move those signals around which are rarely used
and move them to slots which haven't been used in Linux yet. In an existing
installation I was able to exchange either the Linux kernel or glibc (or both)
without affecting the boot process and installed applications.
Dropping the HP-UX signals isn't an issue either, since support for HP-UX was
basically dropped a few months back with Kernel 3.14 in commit
f5a408d53edef3af07ac7697b8bc54a755628450 already, when we changed EWOULDBLOCK
to be equal to EAGAIN.
So, even if this is an ABI change, it's better to change it now and thus bring
PARISC Linux in sync with other architectures to avoid other issues in the
future.
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: Carlos O'Donell <carlos@systemhalted.org>
Cc: John David Anglin <dave.anglin@bell.net>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: PARISC Linux Kernel Mailinglist <linux-parisc@vger.kernel.org>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
2014-10-11 04:20:17 +08:00
|
|
|
#define SIGSTKFLT 7
|
2012-10-17 04:28:05 +08:00
|
|
|
#define SIGFPE 8
|
|
|
|
#define SIGKILL 9
|
|
|
|
#define SIGBUS 10
|
|
|
|
#define SIGSEGV 11
|
parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux architectures
This patch reduces the value of SIGRTMIN on PARISC from 37 to 32, thus
increasing the number of available RT signals and bring it in sync with other
Linux architectures.
Historically we wanted to natively support HP-UX 32bit binaries with the
PA-RISC Linux port. Because of that we carried the various available signals
from HP-UX (e.g. SIGEMT and SIGLOST) and folded them in between the native
Linux signals. Although this was the right decision at that time, this
required us to increase SIGRTMIN to at least 37 which left us with 27 (64-37)
RT signals.
Those 27 RT signals haven't been a problem in the past, but with the upcoming
importance of systemd we now got the problem that systemd alloctes (hardcoded)
signals up to SIGRTMIN+29 which is beyond our NSIG of 64. Because of that we
have not been able to use systemd on the PARISC Linux port yet.
Of course we could ask the systemd developers to not use those hardcoded
values, but this change is very unlikely, esp. with PA-RISC being a niche
architecture.
The other possibility would be to increase NSIG to e.g. 128, but this would
mean to duplicate most of the existing Linux signal handling code into the
parisc specific Linux kernel tree which would most likely introduce lots of new
bugs beside the code duplication.
The third option is to drop some HP-UX signals and shuffle some other signals
around to bring SIGRTMIN to 32. This is of course an ABI change, but testing
has shown that existing Linux installations are not visibly affected by this
change - most likely because we move those signals around which are rarely used
and move them to slots which haven't been used in Linux yet. In an existing
installation I was able to exchange either the Linux kernel or glibc (or both)
without affecting the boot process and installed applications.
Dropping the HP-UX signals isn't an issue either, since support for HP-UX was
basically dropped a few months back with Kernel 3.14 in commit
f5a408d53edef3af07ac7697b8bc54a755628450 already, when we changed EWOULDBLOCK
to be equal to EAGAIN.
So, even if this is an ABI change, it's better to change it now and thus bring
PARISC Linux in sync with other architectures to avoid other issues in the
future.
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: Carlos O'Donell <carlos@systemhalted.org>
Cc: John David Anglin <dave.anglin@bell.net>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: PARISC Linux Kernel Mailinglist <linux-parisc@vger.kernel.org>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
2014-10-11 04:20:17 +08:00
|
|
|
#define SIGXCPU 12
|
2012-10-17 04:28:05 +08:00
|
|
|
#define SIGPIPE 13
|
|
|
|
#define SIGALRM 14
|
|
|
|
#define SIGTERM 15
|
|
|
|
#define SIGUSR1 16
|
|
|
|
#define SIGUSR2 17
|
|
|
|
#define SIGCHLD 18
|
|
|
|
#define SIGPWR 19
|
|
|
|
#define SIGVTALRM 20
|
|
|
|
#define SIGPROF 21
|
|
|
|
#define SIGIO 22
|
|
|
|
#define SIGPOLL SIGIO
|
|
|
|
#define SIGWINCH 23
|
|
|
|
#define SIGSTOP 24
|
|
|
|
#define SIGTSTP 25
|
|
|
|
#define SIGCONT 26
|
|
|
|
#define SIGTTIN 27
|
|
|
|
#define SIGTTOU 28
|
|
|
|
#define SIGURG 29
|
parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux architectures
This patch reduces the value of SIGRTMIN on PARISC from 37 to 32, thus
increasing the number of available RT signals and bring it in sync with other
Linux architectures.
Historically we wanted to natively support HP-UX 32bit binaries with the
PA-RISC Linux port. Because of that we carried the various available signals
from HP-UX (e.g. SIGEMT and SIGLOST) and folded them in between the native
Linux signals. Although this was the right decision at that time, this
required us to increase SIGRTMIN to at least 37 which left us with 27 (64-37)
RT signals.
Those 27 RT signals haven't been a problem in the past, but with the upcoming
importance of systemd we now got the problem that systemd alloctes (hardcoded)
signals up to SIGRTMIN+29 which is beyond our NSIG of 64. Because of that we
have not been able to use systemd on the PARISC Linux port yet.
Of course we could ask the systemd developers to not use those hardcoded
values, but this change is very unlikely, esp. with PA-RISC being a niche
architecture.
The other possibility would be to increase NSIG to e.g. 128, but this would
mean to duplicate most of the existing Linux signal handling code into the
parisc specific Linux kernel tree which would most likely introduce lots of new
bugs beside the code duplication.
The third option is to drop some HP-UX signals and shuffle some other signals
around to bring SIGRTMIN to 32. This is of course an ABI change, but testing
has shown that existing Linux installations are not visibly affected by this
change - most likely because we move those signals around which are rarely used
and move them to slots which haven't been used in Linux yet. In an existing
installation I was able to exchange either the Linux kernel or glibc (or both)
without affecting the boot process and installed applications.
Dropping the HP-UX signals isn't an issue either, since support for HP-UX was
basically dropped a few months back with Kernel 3.14 in commit
f5a408d53edef3af07ac7697b8bc54a755628450 already, when we changed EWOULDBLOCK
to be equal to EAGAIN.
So, even if this is an ABI change, it's better to change it now and thus bring
PARISC Linux in sync with other architectures to avoid other issues in the
future.
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: Carlos O'Donell <carlos@systemhalted.org>
Cc: John David Anglin <dave.anglin@bell.net>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: PARISC Linux Kernel Mailinglist <linux-parisc@vger.kernel.org>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
2014-10-11 04:20:17 +08:00
|
|
|
#define SIGXFSZ 30
|
|
|
|
#define SIGUNUSED 31
|
|
|
|
#define SIGSYS 31 /* Linux doesn't use this */
|
2012-10-17 04:28:05 +08:00
|
|
|
|
|
|
|
/* These should not be considered constants from userland. */
|
parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux architectures
This patch reduces the value of SIGRTMIN on PARISC from 37 to 32, thus
increasing the number of available RT signals and bring it in sync with other
Linux architectures.
Historically we wanted to natively support HP-UX 32bit binaries with the
PA-RISC Linux port. Because of that we carried the various available signals
from HP-UX (e.g. SIGEMT and SIGLOST) and folded them in between the native
Linux signals. Although this was the right decision at that time, this
required us to increase SIGRTMIN to at least 37 which left us with 27 (64-37)
RT signals.
Those 27 RT signals haven't been a problem in the past, but with the upcoming
importance of systemd we now got the problem that systemd alloctes (hardcoded)
signals up to SIGRTMIN+29 which is beyond our NSIG of 64. Because of that we
have not been able to use systemd on the PARISC Linux port yet.
Of course we could ask the systemd developers to not use those hardcoded
values, but this change is very unlikely, esp. with PA-RISC being a niche
architecture.
The other possibility would be to increase NSIG to e.g. 128, but this would
mean to duplicate most of the existing Linux signal handling code into the
parisc specific Linux kernel tree which would most likely introduce lots of new
bugs beside the code duplication.
The third option is to drop some HP-UX signals and shuffle some other signals
around to bring SIGRTMIN to 32. This is of course an ABI change, but testing
has shown that existing Linux installations are not visibly affected by this
change - most likely because we move those signals around which are rarely used
and move them to slots which haven't been used in Linux yet. In an existing
installation I was able to exchange either the Linux kernel or glibc (or both)
without affecting the boot process and installed applications.
Dropping the HP-UX signals isn't an issue either, since support for HP-UX was
basically dropped a few months back with Kernel 3.14 in commit
f5a408d53edef3af07ac7697b8bc54a755628450 already, when we changed EWOULDBLOCK
to be equal to EAGAIN.
So, even if this is an ABI change, it's better to change it now and thus bring
PARISC Linux in sync with other architectures to avoid other issues in the
future.
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: Carlos O'Donell <carlos@systemhalted.org>
Cc: John David Anglin <dave.anglin@bell.net>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: PARISC Linux Kernel Mailinglist <linux-parisc@vger.kernel.org>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
2014-10-11 04:20:17 +08:00
|
|
|
#define SIGRTMIN 32
|
2012-10-17 04:28:05 +08:00
|
|
|
#define SIGRTMAX _NSIG /* it's 44 under HP/UX */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* SA_FLAGS values:
|
|
|
|
*
|
|
|
|
* SA_ONSTACK indicates that a registered stack_t will be used.
|
|
|
|
* SA_RESTART flag to get restarting signals (which were the default long ago)
|
|
|
|
* SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
|
|
|
|
* SA_RESETHAND clears the handler when the signal is delivered.
|
|
|
|
* SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
|
|
|
|
* SA_NODEFER prevents the current signal from being masked in the handler.
|
|
|
|
*
|
|
|
|
* SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
|
|
|
|
* Unix names RESETHAND and NODEFER respectively.
|
|
|
|
*/
|
|
|
|
#define SA_ONSTACK 0x00000001
|
|
|
|
#define SA_RESETHAND 0x00000004
|
|
|
|
#define SA_NOCLDSTOP 0x00000008
|
|
|
|
#define SA_SIGINFO 0x00000010
|
|
|
|
#define SA_NODEFER 0x00000020
|
|
|
|
#define SA_RESTART 0x00000040
|
|
|
|
#define SA_NOCLDWAIT 0x00000080
|
|
|
|
#define _SA_SIGGFAULT 0x00000100 /* HPUX */
|
|
|
|
|
|
|
|
#define SA_NOMASK SA_NODEFER
|
|
|
|
#define SA_ONESHOT SA_RESETHAND
|
|
|
|
|
|
|
|
#define MINSIGSTKSZ 2048
|
|
|
|
#define SIGSTKSZ 8192
|
|
|
|
|
|
|
|
|
|
|
|
#define SIG_BLOCK 0 /* for blocking signals */
|
|
|
|
#define SIG_UNBLOCK 1 /* for unblocking signals */
|
|
|
|
#define SIG_SETMASK 2 /* for setting the signal mask */
|
|
|
|
|
|
|
|
#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
|
|
|
|
#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
|
|
|
|
#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */
|
|
|
|
|
|
|
|
# ifndef __ASSEMBLY__
|
|
|
|
|
|
|
|
# include <linux/types.h>
|
|
|
|
|
|
|
|
/* Avoid too many header ordering problems. */
|
|
|
|
struct siginfo;
|
|
|
|
|
|
|
|
/* Type of a signal handler. */
|
2014-11-11 05:04:47 +08:00
|
|
|
#if defined(__LP64__)
|
2012-10-17 04:28:05 +08:00
|
|
|
/* function pointers on 64-bit parisc are pointers to little structs and the
|
|
|
|
* compiler doesn't support code which changes or tests the address of
|
|
|
|
* the function in the little struct. This is really ugly -PB
|
|
|
|
*/
|
|
|
|
typedef char __user *__sighandler_t;
|
|
|
|
#else
|
|
|
|
typedef void __signalfn_t(int);
|
|
|
|
typedef __signalfn_t __user *__sighandler_t;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct sigaltstack {
|
|
|
|
void __user *ss_sp;
|
|
|
|
int ss_flags;
|
|
|
|
size_t ss_size;
|
|
|
|
} stack_t;
|
|
|
|
|
|
|
|
#endif /* !__ASSEMBLY */
|
|
|
|
#endif /* _UAPI_ASM_PARISC_SIGNAL_H */
|