aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/libbpf.c
diff options
context:
space:
mode:
authorJoe Stringer <joe@ovn.org>2017-01-22 20:11:23 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2017-01-26 09:42:57 -0500
commited7940731ac89616b8a516c560a76dca44a152a8 (patch)
treea1aa49d9c02b3e495760f427f55ee8fe57991ed5 /tools/lib/bpf/libbpf.c
parent94e5adece8b37a23d99fb1f8a5de94b23194f387 (diff)
tools lib bpf: Define prog_type fns with macro
Turning this into a macro allows future prog types to be added with a single line per type. Signed-off-by: Joe Stringer <joe@ovn.org> Acked-by: Wang Nan <wangnan0@huawei.com> Cc: Alexei Starovoitov <ast@fb.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: netdev@vger.kernel.org Link: http://lkml.kernel.org/r/20170123011128.26534-3-joe@ovn.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/lib/bpf/libbpf.c')
-rw-r--r--tools/lib/bpf/libbpf.c41
1 files changed, 16 insertions, 25 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 671d5ad07cf1..371cb40a2304 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -1428,37 +1428,28 @@ static void bpf_program__set_type(struct bpf_program *prog,
1428 prog->type = type; 1428 prog->type = type;
1429} 1429}
1430 1430
1431int bpf_program__set_tracepoint(struct bpf_program *prog)
1432{
1433 if (!prog)
1434 return -EINVAL;
1435 bpf_program__set_type(prog, BPF_PROG_TYPE_TRACEPOINT);
1436 return 0;
1437}
1438
1439int bpf_program__set_kprobe(struct bpf_program *prog)
1440{
1441 if (!prog)
1442 return -EINVAL;
1443 bpf_program__set_type(prog, BPF_PROG_TYPE_KPROBE);
1444 return 0;
1445}
1446
1447static bool bpf_program__is_type(struct bpf_program *prog, 1431static bool bpf_program__is_type(struct bpf_program *prog,
1448 enum bpf_prog_type type) 1432 enum bpf_prog_type type)
1449{ 1433{
1450 return prog ? (prog->type == type) : false; 1434 return prog ? (prog->type == type) : false;
1451} 1435}
1452 1436
1453bool bpf_program__is_tracepoint(struct bpf_program *prog) 1437#define BPF_PROG_TYPE_FNS(NAME, TYPE) \
1454{ 1438int bpf_program__set_##NAME(struct bpf_program *prog) \
1455 return bpf_program__is_type(prog, BPF_PROG_TYPE_TRACEPOINT); 1439{ \
1456} 1440 if (!prog) \
1457 1441 return -EINVAL; \
1458bool bpf_program__is_kprobe(struct bpf_program *prog) 1442 bpf_program__set_type(prog, TYPE); \
1459{ 1443 return 0; \
1460 return bpf_program__is_type(prog, BPF_PROG_TYPE_KPROBE); 1444} \
1461} 1445 \
1446bool bpf_program__is_##NAME(struct bpf_program *prog) \
1447{ \
1448 return bpf_program__is_type(prog, TYPE); \
1449} \
1450
1451BPF_PROG_TYPE_FNS(kprobe, BPF_PROG_TYPE_KPROBE);
1452BPF_PROG_TYPE_FNS(tracepoint, BPF_PROG_TYPE_TRACEPOINT);
1462 1453
1463int bpf_map__fd(struct bpf_map *map) 1454int bpf_map__fd(struct bpf_map *map)
1464{ 1455{