diff options
author | Joe Stringer <joe@ovn.org> | 2017-01-22 20:11:23 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-01-26 09:42:57 -0500 |
commit | ed7940731ac89616b8a516c560a76dca44a152a8 (patch) | |
tree | a1aa49d9c02b3e495760f427f55ee8fe57991ed5 /tools/lib/bpf/libbpf.c | |
parent | 94e5adece8b37a23d99fb1f8a5de94b23194f387 (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.c | 41 |
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 | ||
1431 | int 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 | |||
1439 | int 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 | |||
1447 | static bool bpf_program__is_type(struct bpf_program *prog, | 1431 | static 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 | ||
1453 | bool bpf_program__is_tracepoint(struct bpf_program *prog) | 1437 | #define BPF_PROG_TYPE_FNS(NAME, TYPE) \ |
1454 | { | 1438 | int 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; \ | |
1458 | bool 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 | \ |
1446 | bool bpf_program__is_##NAME(struct bpf_program *prog) \ | ||
1447 | { \ | ||
1448 | return bpf_program__is_type(prog, TYPE); \ | ||
1449 | } \ | ||
1450 | |||
1451 | BPF_PROG_TYPE_FNS(kprobe, BPF_PROG_TYPE_KPROBE); | ||
1452 | BPF_PROG_TYPE_FNS(tracepoint, BPF_PROG_TYPE_TRACEPOINT); | ||
1462 | 1453 | ||
1463 | int bpf_map__fd(struct bpf_map *map) | 1454 | int bpf_map__fd(struct bpf_map *map) |
1464 | { | 1455 | { |