mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 dd8c17a5fe
			
		
	
	
		dd8c17a5fe
		
	
	
	
	
		
			
			The unwind__get_entries() already receives the thread parameter, from where it can obtain the matching machine structure, shorten the signature. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Borislav Petkov <bp@suse.de> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jean Pihet <jean.pihet@linaro.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-isjc6bm8mv4612mhi6af64go@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __UNWIND_H
 | |
| #define __UNWIND_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| #include "event.h"
 | |
| #include "symbol.h"
 | |
| #include "thread.h"
 | |
| 
 | |
| struct unwind_entry {
 | |
| 	struct map	*map;
 | |
| 	struct symbol	*sym;
 | |
| 	u64		ip;
 | |
| };
 | |
| 
 | |
| typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg);
 | |
| 
 | |
| #ifdef HAVE_DWARF_UNWIND_SUPPORT
 | |
| int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
 | |
| 			struct thread *thread,
 | |
| 			struct perf_sample *data, int max_stack);
 | |
| /* libunwind specific */
 | |
| #ifdef HAVE_LIBUNWIND_SUPPORT
 | |
| int libunwind__arch_reg_id(int regnum);
 | |
| int unwind__prepare_access(struct thread *thread);
 | |
| void unwind__flush_access(struct thread *thread);
 | |
| void unwind__finish_access(struct thread *thread);
 | |
| #else
 | |
| static inline int unwind__prepare_access(struct thread *thread __maybe_unused)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void unwind__flush_access(struct thread *thread __maybe_unused) {}
 | |
| static inline void unwind__finish_access(struct thread *thread __maybe_unused) {}
 | |
| #endif
 | |
| #else
 | |
| static inline int
 | |
| unwind__get_entries(unwind_entry_cb_t cb __maybe_unused,
 | |
| 		    void *arg __maybe_unused,
 | |
| 		    struct thread *thread __maybe_unused,
 | |
| 		    struct perf_sample *data __maybe_unused,
 | |
| 		    int max_stack __maybe_unused)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline int unwind__prepare_access(struct thread *thread __maybe_unused)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void unwind__flush_access(struct thread *thread __maybe_unused) {}
 | |
| static inline void unwind__finish_access(struct thread *thread __maybe_unused) {}
 | |
| #endif /* HAVE_DWARF_UNWIND_SUPPORT */
 | |
| #endif /* __UNWIND_H */
 |