32 lines
		
	
	
		
			830 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			830 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Stack trace support for Microblaze.
 | |
|  *
 | |
|  * Copyright (C) 2009 Michal Simek <monstr@monstr.eu>
 | |
|  * Copyright (C) 2009 PetaLogix
 | |
|  *
 | |
|  * This file is subject to the terms and conditions of the GNU General Public
 | |
|  * License. See the file "COPYING" in the main directory of this archive
 | |
|  * for more details.
 | |
|  */
 | |
| 
 | |
| #include <linux/export.h>
 | |
| #include <linux/sched.h>
 | |
| #include <linux/stacktrace.h>
 | |
| #include <linux/thread_info.h>
 | |
| #include <linux/ptrace.h>
 | |
| #include <asm/unwind.h>
 | |
| 
 | |
| void save_stack_trace(struct stack_trace *trace)
 | |
| {
 | |
| 	/* Exclude our helper functions from the trace*/
 | |
| 	trace->skip += 2;
 | |
| 	microblaze_unwind(NULL, trace, "");
 | |
| }
 | |
| EXPORT_SYMBOL_GPL(save_stack_trace);
 | |
| 
 | |
| void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
 | |
| {
 | |
| 	microblaze_unwind(tsk, trace, "");
 | |
| }
 | |
| EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
 |