xref: /openbmc/linux/arch/ia64/kernel/sigframe.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds struct sigscratch {
31da177e4SLinus Torvalds 	unsigned long scratch_unat;	/* ar.unat for the general registers saved in pt */
41da177e4SLinus Torvalds 	unsigned long ar_pfs;		/* for syscalls, the user-level function-state  */
51da177e4SLinus Torvalds 	struct pt_regs pt;
61da177e4SLinus Torvalds };
71da177e4SLinus Torvalds 
81da177e4SLinus Torvalds struct sigframe {
91da177e4SLinus Torvalds 	/*
101da177e4SLinus Torvalds 	 * Place signal handler args where user-level unwinder can find them easily.
111da177e4SLinus Torvalds 	 * DO NOT MOVE THESE.  They are part of the IA-64 Linux ABI and there is
121da177e4SLinus Torvalds 	 * user-level code that depends on their presence!
131da177e4SLinus Torvalds 	 */
141da177e4SLinus Torvalds 	unsigned long arg0;		/* signum */
151da177e4SLinus Torvalds 	unsigned long arg1;		/* siginfo pointer */
161da177e4SLinus Torvalds 	unsigned long arg2;		/* sigcontext pointer */
171da177e4SLinus Torvalds 	/*
181da177e4SLinus Torvalds 	 * End of architected state.
191da177e4SLinus Torvalds 	 */
201da177e4SLinus Torvalds 
211da177e4SLinus Torvalds 	void __user *handler;		/* pointer to the plabel of the signal handler */
221da177e4SLinus Torvalds 	struct siginfo info;
231da177e4SLinus Torvalds 	struct sigcontext sc;
241da177e4SLinus Torvalds };
251da177e4SLinus Torvalds 
264a177cbfSAlexey Dobriyan extern void ia64_do_signal (struct sigscratch *, long);
27