Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/bpf: Move some tc_helpers.h functions to test_progs.h

Move static inline functions id_from_prog_fd() and id_from_link_fd()
from prog_tests/tc_helpers.h to test_progs.h so these two functions
can be reused for later cgroup mprog selftests.

Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250606163151.2429325-1-yonghong.song@linux.dev

authored by

Yonghong Song and committed by
Andrii Nakryiko
c1bb6865 1d671166

+28 -28
-28
tools/testing/selftests/bpf/prog_tests/tc_helpers.h
··· 8 8 # define loopback 1 9 9 #endif 10 10 11 - static inline __u32 id_from_prog_fd(int fd) 12 - { 13 - struct bpf_prog_info prog_info = {}; 14 - __u32 prog_info_len = sizeof(prog_info); 15 - int err; 16 - 17 - err = bpf_obj_get_info_by_fd(fd, &prog_info, &prog_info_len); 18 - if (!ASSERT_OK(err, "id_from_prog_fd")) 19 - return 0; 20 - 21 - ASSERT_NEQ(prog_info.id, 0, "prog_info.id"); 22 - return prog_info.id; 23 - } 24 - 25 - static inline __u32 id_from_link_fd(int fd) 26 - { 27 - struct bpf_link_info link_info = {}; 28 - __u32 link_info_len = sizeof(link_info); 29 - int err; 30 - 31 - err = bpf_link_get_info_by_fd(fd, &link_info, &link_info_len); 32 - if (!ASSERT_OK(err, "id_from_link_fd")) 33 - return 0; 34 - 35 - ASSERT_NEQ(link_info.id, 0, "link_info.id"); 36 - return link_info.id; 37 - } 38 - 39 11 static inline __u32 ifindex_from_link_fd(int fd) 40 12 { 41 13 struct bpf_link_info link_info = {};
+28
tools/testing/selftests/bpf/test_progs.h
··· 460 460 return (void *) (unsigned long) ptr; 461 461 } 462 462 463 + static inline __u32 id_from_prog_fd(int fd) 464 + { 465 + struct bpf_prog_info prog_info = {}; 466 + __u32 prog_info_len = sizeof(prog_info); 467 + int err; 468 + 469 + err = bpf_obj_get_info_by_fd(fd, &prog_info, &prog_info_len); 470 + if (!ASSERT_OK(err, "id_from_prog_fd")) 471 + return 0; 472 + 473 + ASSERT_NEQ(prog_info.id, 0, "prog_info.id"); 474 + return prog_info.id; 475 + } 476 + 477 + static inline __u32 id_from_link_fd(int fd) 478 + { 479 + struct bpf_link_info link_info = {}; 480 + __u32 link_info_len = sizeof(link_info); 481 + int err; 482 + 483 + err = bpf_link_get_info_by_fd(fd, &link_info, &link_info_len); 484 + if (!ASSERT_OK(err, "id_from_link_fd")) 485 + return 0; 486 + 487 + ASSERT_NEQ(link_info.id, 0, "link_info.id"); 488 + return link_info.id; 489 + } 490 + 463 491 int bpf_find_map(const char *test, struct bpf_object *obj, const char *name); 464 492 int compare_map_keys(int map1_fd, int map2_fd); 465 493 int compare_stack_ips(int smap_fd, int amap_fd, int stack_trace_len);