1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2#ifndef _ASM_POWERPC_SIGNAL_H
  3#define _ASM_POWERPC_SIGNAL_H
  4
  5#include <linux/types.h>
  6
  7#define _NSIG		64
  8#ifdef __powerpc64__
  9#define _NSIG_BPW	64
 10#else
 11#define _NSIG_BPW	32
 12#endif
 13#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
 14
 15typedef unsigned long old_sigset_t;		/* at least 32 bits */
 16
 17typedef struct {
 18	unsigned long sig[_NSIG_WORDS];
 19} sigset_t;
 20
 21#define SIGHUP		 1
 22#define SIGINT		 2
 23#define SIGQUIT		 3
 24#define SIGILL		 4
 25#define SIGTRAP		 5
 26#define SIGABRT		 6
 27#define SIGIOT		 6
 28#define SIGBUS		 7
 29#define SIGFPE		 8
 30#define SIGKILL		 9
 31#define SIGUSR1		10
 32#define SIGSEGV		11
 33#define SIGUSR2		12
 34#define SIGPIPE		13
 35#define SIGALRM		14
 36#define SIGTERM		15
 37#define SIGSTKFLT	16
 38#define SIGCHLD		17
 39#define SIGCONT		18
 40#define SIGSTOP		19
 41#define SIGTSTP		20
 42#define SIGTTIN		21
 43#define SIGTTOU		22
 44#define SIGURG		23
 45#define SIGXCPU		24
 46#define SIGXFSZ		25
 47#define SIGVTALRM	26
 48#define SIGPROF		27
 49#define SIGWINCH	28
 50#define SIGIO		29
 51#define SIGPOLL		SIGIO
 52/*
 53#define SIGLOST		29
 54*/
 55#define SIGPWR		30
 56#define SIGSYS		31
 57#define	SIGUNUSED	31
 58
 59/* These should not be considered constants from userland.  */
 60#define SIGRTMIN	32
 61#define SIGRTMAX	_NSIG
 62
 63#define SA_RESTORER	0x04000000U
 64
 65#ifdef __powerpc64__
 66#define MINSIGSTKSZ	8192
 67#define SIGSTKSZ	32768
 68#else
 69#define MINSIGSTKSZ	2048
 70#define SIGSTKSZ	8192
 71#endif
 72
 73#include <asm-generic/signal-defs.h>
 74
 75struct old_sigaction {
 76	__sighandler_t sa_handler;
 77	old_sigset_t sa_mask;
 78	unsigned long sa_flags;
 79	__sigrestore_t sa_restorer;
 80};
 81
 82struct sigaction {
 83	__sighandler_t sa_handler;
 84	unsigned long sa_flags;
 85	__sigrestore_t sa_restorer;
 86	sigset_t sa_mask;		/* mask last for extensibility */
 87};
 88
 89typedef struct sigaltstack {
 90	void *ss_sp;
 91	int ss_flags;
 92	__kernel_size_t ss_size;
 93} stack_t;
 94
 95
 96#ifndef __powerpc64__
 97/*
 98 * These are parameters to dbg_sigreturn syscall.  They enable or
 99 * disable certain debugging things that can be done from signal
100 * handlers.  The dbg_sigreturn syscall *must* be called from a
101 * SA_SIGINFO signal so the ucontext can be passed to it.  It takes an
102 * array of struct sig_dbg_op, which has the debug operations to
103 * perform before returning from the signal.
104 */
105struct sig_dbg_op {
106	int dbg_type;
107	unsigned long dbg_value;
108};
109
110/* Enable or disable single-stepping.  The value sets the state. */
111#define SIG_DBG_SINGLE_STEPPING		1
112
113/* Enable or disable branch tracing.  The value sets the state. */
114#define SIG_DBG_BRANCH_TRACING		2
115#endif /* ! __powerpc64__ */
116
117#endif /* _ASM_POWERPC_SIGNAL_H */