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