| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  *  linux/arch/cris/kernel/ptrace.c | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Parts taken from the m68k port. | 
					
						
							| 
									
										
										
										
											2008-01-28 16:30:35 +01:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * Copyright (c) 2000, 2001, 2002 Axis Communications AB | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Authors:   Bjorn Wesen | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							|  |  |  | #include <linux/sched.h>
 | 
					
						
							|  |  |  | #include <linux/mm.h>
 | 
					
						
							|  |  |  | #include <linux/smp.h>
 | 
					
						
							|  |  |  | #include <linux/errno.h>
 | 
					
						
							|  |  |  | #include <linux/ptrace.h>
 | 
					
						
							|  |  |  | #include <linux/user.h>
 | 
					
						
							| 
									
										
										
										
											2009-09-09 08:30:21 +01:00
										 |  |  | #include <linux/tracehook.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <asm/uaccess.h>
 | 
					
						
							|  |  |  | #include <asm/page.h>
 | 
					
						
							|  |  |  | #include <asm/pgtable.h>
 | 
					
						
							|  |  |  | #include <asm/processor.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* notification of userspace execution resumption
 | 
					
						
							|  |  |  |  * - triggered by current->work.notify_resume | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2007-11-14 17:00:59 -08:00
										 |  |  | extern int do_signal(int canrestart, struct pt_regs *regs); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-11-14 17:00:59 -08:00
										 |  |  | void do_notify_resume(int canrestart, struct pt_regs *regs, | 
					
						
							| 
									
										
										
										
											2008-01-28 16:30:35 +01:00
										 |  |  | 		      __u32 thread_info_flags) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	/* deal with pending signal delivery */ | 
					
						
							|  |  |  | 	if (thread_info_flags & _TIF_SIGPENDING) | 
					
						
							| 
									
										
										
										
											2007-11-14 17:00:59 -08:00
										 |  |  | 		do_signal(canrestart,regs); | 
					
						
							| 
									
										
										
										
											2009-09-02 09:14:16 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	if (thread_info_flags & _TIF_NOTIFY_RESUME) { | 
					
						
							|  |  |  | 		clear_thread_flag(TIF_NOTIFY_RESUME); | 
					
						
							|  |  |  | 		tracehook_notify_resume(regs); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } |