| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | struct sigscratch { | 
					
						
							|  |  |  | 	unsigned long scratch_unat;	/* ar.unat for the general registers saved in pt */ | 
					
						
							|  |  |  | 	unsigned long ar_pfs;		/* for syscalls, the user-level function-state  */ | 
					
						
							|  |  |  | 	struct pt_regs pt; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct sigframe { | 
					
						
							|  |  |  | 	/*
 | 
					
						
							|  |  |  | 	 * Place signal handler args where user-level unwinder can find them easily. | 
					
						
							|  |  |  | 	 * DO NOT MOVE THESE.  They are part of the IA-64 Linux ABI and there is | 
					
						
							|  |  |  | 	 * user-level code that depends on their presence! | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 	unsigned long arg0;		/* signum */ | 
					
						
							|  |  |  | 	unsigned long arg1;		/* siginfo pointer */ | 
					
						
							|  |  |  | 	unsigned long arg2;		/* sigcontext pointer */ | 
					
						
							|  |  |  | 	/*
 | 
					
						
							|  |  |  | 	 * End of architected state. | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void __user *handler;		/* pointer to the plabel of the signal handler */ | 
					
						
							|  |  |  | 	struct siginfo info; | 
					
						
							|  |  |  | 	struct sigcontext sc; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 19:03:17 +03:00
										 |  |  | extern void ia64_do_signal (struct sigscratch *, long); |