1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_PARISC_RT_SIGFRAME_H
3#define _ASM_PARISC_RT_SIGFRAME_H
4
5#define SIGRETURN_TRAMP 4
6#define SIGRESTARTBLOCK_TRAMP 5
7#define TRAMP_SIZE (SIGRETURN_TRAMP + SIGRESTARTBLOCK_TRAMP)
8
9struct rt_sigframe {
10	/* XXX: Must match trampoline size in arch/parisc/kernel/signal.c
11	        Secondary to that it must protect the ERESTART_RESTARTBLOCK
12		trampoline we left on the stack (we were bad and didn't
13		change sp so we could run really fast.) */
14	unsigned int tramp[TRAMP_SIZE];
15	struct siginfo info;
16	struct ucontext uc;
17};
18
19#define	SIGFRAME		128
20#define FUNCTIONCALLFRAME	96
21#define PARISC_RT_SIGFRAME_SIZE					\
22	(((sizeof(struct rt_sigframe) + FUNCTIONCALLFRAME) + SIGFRAME) & -SIGFRAME)
23
24#endif
25