1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _UAPI_ASM_POWERPC_SIGNAL_H
3#define _UAPI_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
75#ifndef __KERNEL__
76struct old_sigaction {
77	__sighandler_t sa_handler;
78	old_sigset_t sa_mask;
79	unsigned long sa_flags;
80	__sigrestore_t sa_restorer;
81};
82
83struct sigaction {
84	__sighandler_t sa_handler;
85	unsigned long sa_flags;
86	__sigrestore_t sa_restorer;
87	sigset_t sa_mask;		/* mask last for extensibility */
88};
89#endif
90
91typedef struct sigaltstack {
92	void __user *ss_sp;
93	int ss_flags;
94	__kernel_size_t ss_size;
95} stack_t;
96
97
98#ifndef __powerpc64__
99/*
100 * These are parameters to dbg_sigreturn syscall.  They enable or
101 * disable certain debugging things that can be done from signal
102 * handlers.  The dbg_sigreturn syscall *must* be called from a
103 * SA_SIGINFO signal so the ucontext can be passed to it.  It takes an
104 * array of struct sig_dbg_op, which has the debug operations to
105 * perform before returning from the signal.
106 */
107struct sig_dbg_op {
108	int dbg_type;
109	unsigned long dbg_value;
110};
111
112/* Enable or disable single-stepping.  The value sets the state. */
113#define SIG_DBG_SINGLE_STEPPING		1
114
115/* Enable or disable branch tracing.  The value sets the state. */
116#define SIG_DBG_BRANCH_TRACING		2
117#endif /* ! __powerpc64__ */
118
119#endif /* _UAPI_ASM_POWERPC_SIGNAL_H */
120