162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * include/asm-xtensa/signal.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Swiped from SH.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
862306a36Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
962306a36Sopenharmony_ci * for more details.
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * Copyright (C) 2001 - 2005 Tensilica Inc.
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#ifndef _UAPI_XTENSA_SIGNAL_H
1562306a36Sopenharmony_ci#define _UAPI_XTENSA_SIGNAL_H
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define _NSIG		64
1962306a36Sopenharmony_ci#define _NSIG_BPW	32
2062306a36Sopenharmony_ci#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci#ifndef __ASSEMBLY__
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#include <linux/types.h>
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci/* Avoid too many header ordering problems.  */
2762306a36Sopenharmony_cistruct siginfo;
2862306a36Sopenharmony_citypedef unsigned long old_sigset_t;		/* at least 32 bits */
2962306a36Sopenharmony_citypedef struct {
3062306a36Sopenharmony_ci	unsigned long sig[_NSIG_WORDS];
3162306a36Sopenharmony_ci} sigset_t;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#endif
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#define SIGHUP		 1
3662306a36Sopenharmony_ci#define SIGINT		 2
3762306a36Sopenharmony_ci#define SIGQUIT		 3
3862306a36Sopenharmony_ci#define SIGILL		 4
3962306a36Sopenharmony_ci#define SIGTRAP		 5
4062306a36Sopenharmony_ci#define SIGABRT		 6
4162306a36Sopenharmony_ci#define SIGIOT		 6
4262306a36Sopenharmony_ci#define SIGBUS		 7
4362306a36Sopenharmony_ci#define SIGFPE		 8
4462306a36Sopenharmony_ci#define SIGKILL		 9
4562306a36Sopenharmony_ci#define SIGUSR1		10
4662306a36Sopenharmony_ci#define SIGSEGV		11
4762306a36Sopenharmony_ci#define SIGUSR2		12
4862306a36Sopenharmony_ci#define SIGPIPE		13
4962306a36Sopenharmony_ci#define SIGALRM		14
5062306a36Sopenharmony_ci#define SIGTERM		15
5162306a36Sopenharmony_ci#define SIGSTKFLT	16
5262306a36Sopenharmony_ci#define SIGCHLD		17
5362306a36Sopenharmony_ci#define SIGCONT		18
5462306a36Sopenharmony_ci#define SIGSTOP		19
5562306a36Sopenharmony_ci#define SIGTSTP		20
5662306a36Sopenharmony_ci#define SIGTTIN		21
5762306a36Sopenharmony_ci#define SIGTTOU		22
5862306a36Sopenharmony_ci#define SIGURG		23
5962306a36Sopenharmony_ci#define SIGXCPU		24
6062306a36Sopenharmony_ci#define SIGXFSZ		25
6162306a36Sopenharmony_ci#define SIGVTALRM	26
6262306a36Sopenharmony_ci#define SIGPROF		27
6362306a36Sopenharmony_ci#define SIGWINCH	28
6462306a36Sopenharmony_ci#define SIGIO		29
6562306a36Sopenharmony_ci#define SIGPOLL		SIGIO
6662306a36Sopenharmony_ci/* #define SIGLOST		29 */
6762306a36Sopenharmony_ci#define SIGPWR		30
6862306a36Sopenharmony_ci#define SIGSYS		31
6962306a36Sopenharmony_ci#define	SIGUNUSED	31
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci/* These should not be considered constants from userland.  */
7262306a36Sopenharmony_ci#define SIGRTMIN	32
7362306a36Sopenharmony_ci#define SIGRTMAX	(_NSIG-1)
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci#define SA_RESTORER	0x04000000
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci#define MINSIGSTKSZ	2048
7862306a36Sopenharmony_ci#define SIGSTKSZ	8192
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci#ifndef __ASSEMBLY__
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci#include <asm-generic/signal-defs.h>
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci#ifndef __KERNEL__
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci/* Here we must cater to libcs that poke about in kernel headers.  */
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cistruct sigaction {
8962306a36Sopenharmony_ci	union {
9062306a36Sopenharmony_ci	  __sighandler_t _sa_handler;
9162306a36Sopenharmony_ci	  void (*_sa_sigaction)(int, struct siginfo *, void *);
9262306a36Sopenharmony_ci	} _u;
9362306a36Sopenharmony_ci	sigset_t sa_mask;
9462306a36Sopenharmony_ci	unsigned long sa_flags;
9562306a36Sopenharmony_ci	void (*sa_restorer)(void);
9662306a36Sopenharmony_ci};
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci#define sa_handler	_u._sa_handler
9962306a36Sopenharmony_ci#define sa_sigaction	_u._sa_sigaction
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci#endif /* __KERNEL__ */
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_citypedef struct sigaltstack {
10462306a36Sopenharmony_ci	void *ss_sp;
10562306a36Sopenharmony_ci	int ss_flags;
10662306a36Sopenharmony_ci	__kernel_size_t ss_size;
10762306a36Sopenharmony_ci} stack_t;
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci#endif	/* __ASSEMBLY__ */
11062306a36Sopenharmony_ci#endif /* _UAPI_XTENSA_SIGNAL_H */
111