tools/bpf: add ksym_get_addr() in trace_helpers
Given a kernel function name, ksym_get_addr() will return the kernel address for this function, or 0 if it cannot find this function name in /proc/kallsyms. This function will be used later when a kernel address is used to initiate a kprobe perf event. Acked-by: Martin KaFai Lau <kafai@fb.com> Signed-off-by: Yonghong Song <yhs@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
30687ad94e
commit
73bc4d9fc0
|
@ -72,6 +72,18 @@ struct ksym *ksym_search(long key)
|
||||||
return &syms[0];
|
return &syms[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long ksym_get_addr(const char *name)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < sym_cnt; i++) {
|
||||||
|
if (strcmp(syms[i].name, name) == 0)
|
||||||
|
return syms[i].addr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int page_size;
|
static int page_size;
|
||||||
static int page_cnt = 8;
|
static int page_cnt = 8;
|
||||||
static struct perf_event_mmap_page *header;
|
static struct perf_event_mmap_page *header;
|
||||||
|
|
|
@ -11,6 +11,7 @@ struct ksym {
|
||||||
|
|
||||||
int load_kallsyms(void);
|
int load_kallsyms(void);
|
||||||
struct ksym *ksym_search(long key);
|
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);
|
typedef enum bpf_perf_event_ret (*perf_event_print_fn)(void *data, int size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue