forked from mirrors/linux
		
	 22adedd304
			
		
	
	
		22adedd304
		
	
	
	
	
		
			
			Add two new helper functions to trace_helpers that supports polling multiple perf file descriptors for events. These are used to the XDP perf_event_output example, which needs to work with one perf fd per CPU. Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> Acked-by: Song Liu <songliubraving@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			727 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			727 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef __TRACE_HELPER_H
 | |
| #define __TRACE_HELPER_H
 | |
| 
 | |
| #include <libbpf.h>
 | |
| #include <linux/perf_event.h>
 | |
| 
 | |
| struct ksym {
 | |
| 	long addr;
 | |
| 	char *name;
 | |
| };
 | |
| 
 | |
| int load_kallsyms(void);
 | |
| struct ksym *ksym_search(long key);
 | |
| long ksym_get_addr(const char *name);
 | |
| 
 | |
| typedef enum bpf_perf_event_ret (*perf_event_print_fn)(void *data, int size);
 | |
| 
 | |
| int perf_event_mmap(int fd);
 | |
| int perf_event_mmap_header(int fd, struct perf_event_mmap_page **header);
 | |
| /* return LIBBPF_PERF_EVENT_DONE or LIBBPF_PERF_EVENT_ERROR */
 | |
| int perf_event_poller(int fd, perf_event_print_fn output_fn);
 | |
| int perf_event_poller_multi(int *fds, struct perf_event_mmap_page **headers,
 | |
| 			    int num_fds, perf_event_print_fn output_fn);
 | |
| #endif
 |