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);
27