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