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