| /* SPDX-License-Identifier: GPL-2.0 */ | |
| struct sigscratch { | |
| unsigned long scratch_unat; /* ar.unat for the general registers saved in pt */ | |
| unsigned long ar_pfs; /* for syscalls, the user-level function-state */ | |
| struct pt_regs pt; | |
| }; | |
| struct sigframe { | |
| /* | |
| * Place signal handler args where user-level unwinder can find them easily. | |
| * DO NOT MOVE THESE. They are part of the IA-64 Linux ABI and there is | |
| * user-level code that depends on their presence! | |
| */ | |
| unsigned long arg0; /* signum */ | |
| unsigned long arg1; /* siginfo pointer */ | |
| unsigned long arg2; /* sigcontext pointer */ | |
| /* | |
| * End of architected state. | |
| */ | |
| void __user *handler; /* pointer to the plabel of the signal handler */ | |
| struct siginfo info; | |
| struct sigcontext sc; | |
| }; | |
| extern void ia64_do_signal (struct sigscratch *, long); |