GNU Linux-libre 4.19.207-gnu1
[releases.git] / arch / ia64 / kernel / sigframe.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 struct sigscratch {
3         unsigned long scratch_unat;     /* ar.unat for the general registers saved in pt */
4         unsigned long ar_pfs;           /* for syscalls, the user-level function-state  */
5         struct pt_regs pt;
6 };
7
8 struct sigframe {
9         /*
10          * Place signal handler args where user-level unwinder can find them easily.
11          * DO NOT MOVE THESE.  They are part of the IA-64 Linux ABI and there is
12          * user-level code that depends on their presence!
13          */
14         unsigned long arg0;             /* signum */
15         unsigned long arg1;             /* siginfo pointer */
16         unsigned long arg2;             /* sigcontext pointer */
17         /*
18          * End of architected state.
19          */
20
21         void __user *handler;           /* pointer to the plabel of the signal handler */
22         struct siginfo info;
23         struct sigcontext sc;
24 };
25
26 extern void ia64_do_signal (struct sigscratch *, long);