Skip to content

Commit

Permalink
tools/bpf: add ksym_get_addr() in trace_helpers
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
yonghong-song authored and Alexei Starovoitov committed May 25, 2018
1 parent 30687ad commit 73bc4d9
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
12 changes: 12 additions & 0 deletions tools/testing/selftests/bpf/trace_helpers.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,18 @@ struct ksym *ksym_search(long key)
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_cnt = 8;
static struct perf_event_mmap_page *header;
Expand Down
1 change: 1 addition & 0 deletions tools/testing/selftests/bpf/trace_helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ struct ksym {

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);

Expand Down

0 comments on commit 73bc4d9

Please sign in to comment.