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