| 
									
										
										
										
											2012-08-07 15:20:46 +02:00
										 |  |  | #ifndef __UNWIND_H
 | 
					
						
							|  |  |  | #define __UNWIND_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "types.h"
 | 
					
						
							|  |  |  | #include "event.h"
 | 
					
						
							|  |  |  | #include "symbol.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct unwind_entry { | 
					
						
							|  |  |  | 	struct map	*map; | 
					
						
							|  |  |  | 	struct symbol	*sym; | 
					
						
							|  |  |  | 	u64		ip; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-30 12:07:11 +02:00
										 |  |  | #ifdef HAVE_LIBUNWIND_SUPPORT
 | 
					
						
							| 
									
										
										
										
											2012-08-07 15:20:46 +02:00
										 |  |  | int unwind__get_entries(unwind_entry_cb_t cb, void *arg, | 
					
						
							|  |  |  | 			struct machine *machine, | 
					
						
							|  |  |  | 			struct thread *thread, | 
					
						
							|  |  |  | 			u64 sample_uregs, | 
					
						
							| 
									
										
										
										
											2013-11-13 17:40:36 -03:00
										 |  |  | 			struct perf_sample *data, int max_stack); | 
					
						
							| 
									
										
										
										
											2012-08-07 15:20:46 +02:00
										 |  |  | int unwind__arch_reg_id(int regnum); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline int | 
					
						
							| 
									
										
										
										
											2012-09-11 01:15:03 +03:00
										 |  |  | unwind__get_entries(unwind_entry_cb_t cb __maybe_unused, | 
					
						
							|  |  |  | 		    void *arg __maybe_unused, | 
					
						
							|  |  |  | 		    struct machine *machine __maybe_unused, | 
					
						
							|  |  |  | 		    struct thread *thread __maybe_unused, | 
					
						
							|  |  |  | 		    u64 sample_uregs __maybe_unused, | 
					
						
							| 
									
										
										
										
											2013-11-13 17:40:36 -03:00
										 |  |  | 		    struct perf_sample *data __maybe_unused, | 
					
						
							|  |  |  | 		    int max_stack __maybe_unused) | 
					
						
							| 
									
										
										
										
											2012-08-07 15:20:46 +02:00
										 |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2013-09-30 12:07:11 +02:00
										 |  |  | #endif /* HAVE_LIBUNWIND_SUPPORT */
 | 
					
						
							| 
									
										
										
										
											2012-08-07 15:20:46 +02:00
										 |  |  | #endif /* __UNWIND_H */
 |