Lines Matching refs:btf

26 static int btf_dump_all_types(const struct btf *btf, void *ctx)  in btf_dump_all_types()  argument
28 size_t type_cnt = btf__type_cnt(btf); in btf_dump_all_types()
32 d = btf_dump__new(btf, btf_dump_printf, ctx, NULL); in btf_dump_all_types()
51 struct btf *btf = NULL; in test_btf_dump_case() local
57 btf = btf__parse_elf(test_file, NULL); in test_btf_dump_case()
58 if (!ASSERT_OK_PTR(btf, "btf_parse_elf")) { in test_btf_dump_case()
59 err = -PTR_ERR(btf); in test_btf_dump_case()
60 btf = NULL; in test_btf_dump_case()
70 btf__set_pointer_size(btf, 8); in test_btf_dump_case()
72 CHECK(btf__pointer_size(btf) != 8, "ptr_sz", "exp %d, got %zu\n", in test_btf_dump_case()
73 8, btf__pointer_size(btf)); in test_btf_dump_case()
89 err = btf_dump_all_types(btf, f); in test_btf_dump_case()
125 btf__free(btf); in test_btf_dump_case()
130 struct btf *btf; member
142 btf__free(t->btf); in test_ctx__free()
150 t->btf = btf__new_empty(); in test_ctx__init()
151 if (!ASSERT_OK_PTR(t->btf, "new_empty")) in test_ctx__init()
153 t->d = btf_dump__new(t->btf, btf_dump_printf, t->dump_buf_file, NULL); in test_ctx__init()
170 for (i = 1; i < btf__type_cnt(t->btf); i++) { in test_ctx__dump_and_compare()
184 struct btf *btf; in test_btf_dump_incremental() local
190 btf = t.btf; in test_btf_dump_incremental()
205 id = btf__add_enum(btf, "x", 4); in test_btf_dump_incremental()
207 id = btf__add_enum(btf, "x", 4); in test_btf_dump_incremental()
209 err = btf__add_enum_value(btf, "X", 1); in test_btf_dump_incremental()
212 id = btf__add_enum(btf, NULL, 4); in test_btf_dump_incremental()
214 err = btf__add_enum_value(btf, "Y", 1); in test_btf_dump_incremental()
217 id = btf__add_int(btf, "int", 4, BTF_INT_SIGNED); in test_btf_dump_incremental()
220 id = btf__add_fwd(btf, "s", BTF_FWD_STRUCT); in test_btf_dump_incremental()
223 id = btf__add_struct(btf, "s", 4); in test_btf_dump_incremental()
225 err = btf__add_field(btf, "x", 4, 0, 0); in test_btf_dump_incremental()
261 id = btf__add_struct(btf, "s", 4); in test_btf_dump_incremental()
263 err = btf__add_field(btf, "x", 2, 0, 0); in test_btf_dump_incremental()
265 err = btf__add_field(btf, "y", 3, 32, 0); in test_btf_dump_incremental()
267 err = btf__add_field(btf, "s", 6, 64, 0); in test_btf_dump_incremental()
285 struct btf *btf; in test_btf_dump_type_tags() local
291 btf = t.btf; in test_btf_dump_type_tags()
302 id = btf__add_type_tag(btf, "void_tag", 0); in test_btf_dump_type_tags()
304 id = btf__add_ptr(btf, id); in test_btf_dump_type_tags()
307 id = btf__add_type_attr(btf, "void_attr", 0); in test_btf_dump_type_tags()
309 id = btf__add_ptr(btf, id); in test_btf_dump_type_tags()
312 id = btf__add_struct(btf, "s", 8); in test_btf_dump_type_tags()
314 err = btf__add_field(btf, "p1", 2, 0, 0); in test_btf_dump_type_tags()
316 err = btf__add_field(btf, "p2", 4, 0, 0); in test_btf_dump_type_tags()
339 static int btf_dump_data(struct btf *btf, struct btf_dump *d, in btf_dump_data() argument
359 type_id = btf__find_by_name(btf, name); in btf_dump_data()
362 type_sz = btf__resolve_size(btf, type_id); in btf_dump_data()
420 static void test_btf_dump_int_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_int_data() argument
432 TEST_BTF_DUMP_DATA_C(btf, d, NULL, str, int, BTF_F_COMPACT, 1234); in test_btf_dump_int_data()
433 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_int_data()
435 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, 0, "(int)1234", 1234); in test_btf_dump_int_data()
438 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, BTF_F_COMPACT, "(int)0", 0); in test_btf_dump_int_data()
439 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_int_data()
441 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, BTF_F_COMPACT | BTF_F_ZERO, in test_btf_dump_int_data()
443 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, in test_btf_dump_int_data()
446 TEST_BTF_DUMP_DATA_C(btf, d, NULL, str, int, BTF_F_COMPACT, -4567); in test_btf_dump_int_data()
447 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_int_data()
449 TEST_BTF_DUMP_DATA(btf, d, NULL, str, int, 0, "(int)-4567", -4567); in test_btf_dump_int_data()
451 TEST_BTF_DUMP_DATA_OVER(btf, d, NULL, str, int, sizeof(int)-1, "", 1); in test_btf_dump_int_data()
458 if (btf__find_by_name(btf, "unsigned __int128") > 0) { in test_btf_dump_int_data()
459 TEST_BTF_DUMP_DATA(btf, d, NULL, str, unsigned __int128, BTF_F_COMPACT, in test_btf_dump_int_data()
462 ASSERT_OK(btf_dump_data(btf, d, "unsigned __int128", NULL, 0, &i, 16, str, in test_btf_dump_int_data()
465 } else if (btf__find_by_name(btf, "__int128 unsigned") > 0) { in test_btf_dump_int_data()
466 TEST_BTF_DUMP_DATA(btf, d, NULL, str, __int128 unsigned, BTF_F_COMPACT, in test_btf_dump_int_data()
469 ASSERT_OK(btf_dump_data(btf, d, "__int128 unsigned", NULL, 0, &i, 16, str, in test_btf_dump_int_data()
478 static void test_btf_dump_float_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_float_data() argument
495 ASSERT_GT(btf__add_float(btf, "test_float", 4), 0, "add float"); in test_btf_dump_float_data()
496 ASSERT_OK(btf_dump_data(btf, d, "test_float", NULL, 0, &t1, 4, str, in test_btf_dump_float_data()
498 ASSERT_OK(btf_dump_data(btf, d, "test_float", NULL, 0, &t2, 4, str, in test_btf_dump_float_data()
500 ASSERT_OK(btf_dump_data(btf, d, "test_float", NULL, 0, &t3, 4, str, in test_btf_dump_float_data()
503 ASSERT_GT(btf__add_float(btf, "test_double", 8), 0, "add_double"); in test_btf_dump_float_data()
504 ASSERT_OK(btf_dump_data(btf, d, "test_double", NULL, 0, &t4, 8, str, in test_btf_dump_float_data()
506 ASSERT_OK(btf_dump_data(btf, d, "test_double", NULL, 0, &t5, 8, str, in test_btf_dump_float_data()
508 ASSERT_OK(btf_dump_data(btf, d, "test_double", NULL, 0, &t6, 8, str, in test_btf_dump_float_data()
511 ASSERT_GT(btf__add_float(btf, "test_long_double", 16), 0, "add long double"); in test_btf_dump_float_data()
512 ASSERT_OK(btf_dump_data(btf, d, "test_long_double", NULL, 0, &t7, 16, in test_btf_dump_float_data()
515 ASSERT_OK(btf_dump_data(btf, d, "test_long_double", NULL, 0, &t8, 16, in test_btf_dump_float_data()
518 ASSERT_OK(btf_dump_data(btf, d, "test_long_double", NULL, 0, &t9, 16, in test_btf_dump_float_data()
523 static void test_btf_dump_char_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_char_data() argument
527 TEST_BTF_DUMP_DATA_C(btf, d, NULL, str, char, BTF_F_COMPACT, 100); in test_btf_dump_char_data()
528 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_char_data()
530 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, 0, "(char)100", 100); in test_btf_dump_char_data()
532 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, BTF_F_COMPACT, in test_btf_dump_char_data()
534 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_char_data()
536 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, BTF_F_COMPACT | BTF_F_ZERO, in test_btf_dump_char_data()
538 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, BTF_F_COMPACT | BTF_F_NONAME | BTF_F_ZERO, in test_btf_dump_char_data()
540 TEST_BTF_DUMP_DATA(btf, d, NULL, str, char, 0, "(char)0", 0); in test_btf_dump_char_data()
542 TEST_BTF_DUMP_DATA_OVER(btf, d, NULL, str, char, sizeof(char)-1, "", 100); in test_btf_dump_char_data()
545 static void test_btf_dump_typedef_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_typedef_data() argument
549 TEST_BTF_DUMP_DATA_C(btf, d, NULL, str, uint64_t, BTF_F_COMPACT, 100); in test_btf_dump_typedef_data()
550 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_typedef_data()
552 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, 0, "(u64)1", 1); in test_btf_dump_typedef_data()
554 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, BTF_F_COMPACT, "(u64)0", 0); in test_btf_dump_typedef_data()
555 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_typedef_data()
557 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, BTF_F_COMPACT | BTF_F_ZERO, in test_btf_dump_typedef_data()
559 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, in test_btf_dump_typedef_data()
562 TEST_BTF_DUMP_DATA(btf, d, NULL, str, u64, 0, "(u64)0", 0); in test_btf_dump_typedef_data()
565 TEST_BTF_DUMP_DATA_C(btf, d, NULL, str, atomic_t, BTF_F_COMPACT, in test_btf_dump_typedef_data()
567 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_typedef_data()
569 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, 0, in test_btf_dump_typedef_data()
575 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, BTF_F_COMPACT, "(atomic_t){}", in test_btf_dump_typedef_data()
577 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, BTF_F_COMPACT | BTF_F_NONAME, in test_btf_dump_typedef_data()
579 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, 0, in test_btf_dump_typedef_data()
583 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, BTF_F_COMPACT | BTF_F_ZERO, in test_btf_dump_typedef_data()
586 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, in test_btf_dump_typedef_data()
589 TEST_BTF_DUMP_DATA(btf, d, NULL, str, atomic_t, BTF_F_ZERO, in test_btf_dump_typedef_data()
596 TEST_BTF_DUMP_DATA_OVER(btf, d, NULL, str, atomic_t, sizeof(atomic_t)-1, in test_btf_dump_typedef_data()
600 static void test_btf_dump_enum_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_enum_data() argument
604 TEST_BTF_DUMP_DATA_C(btf, d, "enum", str, enum bpf_cmd, BTF_F_COMPACT, in test_btf_dump_enum_data()
606 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, BTF_F_COMPACT, in test_btf_dump_enum_data()
608 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, in test_btf_dump_enum_data()
612 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, 0, in test_btf_dump_enum_data()
615 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, in test_btf_dump_enum_data()
618 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, in test_btf_dump_enum_data()
622 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, in test_btf_dump_enum_data()
625 TEST_BTF_DUMP_DATA_C(btf, d, "enum", str, enum bpf_cmd, BTF_F_COMPACT, 2000); in test_btf_dump_enum_data()
626 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, in test_btf_dump_enum_data()
629 TEST_BTF_DUMP_DATA(btf, d, "enum", str, enum bpf_cmd, 0, in test_btf_dump_enum_data()
632 TEST_BTF_DUMP_DATA_OVER(btf, d, "enum", str, enum bpf_cmd, in test_btf_dump_enum_data()
636 static void test_btf_dump_struct_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_struct_data() argument
652 TEST_BTF_DUMP_DATA_C(btf, d, "struct", str, struct btf_enum, BTF_F_COMPACT, in test_btf_dump_struct_data()
654 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, in test_btf_dump_struct_data()
658 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, 0, in test_btf_dump_struct_data()
664 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, in test_btf_dump_struct_data()
668 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, in test_btf_dump_struct_data()
673 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, BTF_F_COMPACT, in test_btf_dump_struct_data()
676 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, in test_btf_dump_struct_data()
680 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, 0, in test_btf_dump_struct_data()
684 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, in test_btf_dump_struct_data()
688 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct btf_enum, in test_btf_dump_struct_data()
697 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct list_head, BTF_F_COMPACT, in test_btf_dump_struct_data()
700 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct list_head, 0, in test_btf_dump_struct_data()
706 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct list_head, BTF_F_COMPACT, in test_btf_dump_struct_data()
709 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct list_head, 0, in test_btf_dump_struct_data()
715 type_id = btf__find_by_name(btf, "file_operations"); in test_btf_dump_struct_data()
717 type_sz = btf__resolve_size(btf, type_id); in test_btf_dump_struct_data()
732 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_prog_info, BTF_F_COMPACT, in test_btf_dump_struct_data()
735 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_prog_info, in test_btf_dump_struct_data()
739 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_prog_info, 0, in test_btf_dump_struct_data()
749 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_prog_info, BTF_F_COMPACT, in test_btf_dump_struct_data()
753 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_prog_info, BTF_F_COMPACT, in test_btf_dump_struct_data()
758 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct __sk_buff, BTF_F_COMPACT, in test_btf_dump_struct_data()
761 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct __sk_buff, in test_btf_dump_struct_data()
765 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct __sk_buff, 0, in test_btf_dump_struct_data()
777 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct __sk_buff, BTF_F_COMPACT, in test_btf_dump_struct_data()
780 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct __sk_buff, 0, in test_btf_dump_struct_data()
793 TEST_BTF_DUMP_DATA_C(btf, d, "struct", str, struct bpf_insn, BTF_F_COMPACT, in test_btf_dump_struct_data()
795 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_insn, in test_btf_dump_struct_data()
800 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_insn, 0, in test_btf_dump_struct_data()
811 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_insn, BTF_F_COMPACT, in test_btf_dump_struct_data()
816 type_id = btf__find_by_name(btf, "fs_context"); in test_btf_dump_struct_data()
818 type_sz = btf__resolve_size(btf, type_id); in test_btf_dump_struct_data()
831 TEST_BTF_DUMP_DATA(btf, d, "struct", str, struct bpf_sock_ops, BTF_F_COMPACT, in test_btf_dump_struct_data()
836 TEST_BTF_DUMP_DATA(btf, d, "union", str, union bpf_iter_link_info, BTF_F_COMPACT, in test_btf_dump_struct_data()
844 type_id = btf__find_by_name(btf, "sk_buff"); in test_btf_dump_struct_data()
846 type_sz = btf__resolve_size(btf, type_id); in test_btf_dump_struct_data()
861 TEST_BTF_DUMP_DATA_OVER(btf, d, "struct", str, struct bpf_sock_ops, in test_btf_dump_struct_data()
865 TEST_BTF_DUMP_DATA_OVER(btf, d, "struct", str, struct bpf_sock_ops, in test_btf_dump_struct_data()
871 static void test_btf_dump_var_data(struct btf *btf, struct btf_dump *d, in test_btf_dump_var_data() argument
875 TEST_BTF_DUMP_VAR(btf, d, NULL, str, "cpu_number", int, BTF_F_COMPACT, in test_btf_dump_var_data()
878 TEST_BTF_DUMP_VAR(btf, d, NULL, str, "bpf_cgrp_storage_busy", int, BTF_F_COMPACT, in test_btf_dump_var_data()
883 struct btf *btf; member
898 type_sz = btf__resolve_size(ctx->btf, ctx->array_id); in btf_dump_one_string()
974 d = btf_dump__new(t.btf, btf_dump_snprintf, str, NULL); in test_btf_dump_string_data()
979 char_id = btf__add_int(t.btf, "char", 1, BTF_INT_CHAR); in test_btf_dump_string_data()
981 int_id = btf__add_int(t.btf, "int", 4, BTF_INT_SIGNED); in test_btf_dump_string_data()
983 array_id = btf__add_array(t.btf, int_id, char_id, 4); in test_btf_dump_string_data()
986 ctx.btf = t.btf; in test_btf_dump_string_data()
998 static void test_btf_datasec(struct btf *btf, struct btf_dump *d, char *str, in test_btf_datasec() argument
1009 type_id = btf__find_by_name(btf, name); in test_btf_datasec()
1013 secsize = btf__resolve_size(btf, type_id); in test_btf_datasec()
1026 struct btf *btf; in test_btf_dump_datasec_data() local
1030 btf = btf__parse("xdping_kern.bpf.o", NULL); in test_btf_dump_datasec_data()
1031 if (!ASSERT_OK_PTR(btf, "xdping_kern.bpf.o BTF not found")) in test_btf_dump_datasec_data()
1034 d = btf_dump__new(btf, btf_dump_snprintf, str, NULL); in test_btf_dump_datasec_data()
1038 test_btf_datasec(btf, d, str, "license", in test_btf_dump_datasec_data()
1043 btf__free(btf); in test_btf_dump_datasec_data()
1049 struct btf *btf; in test_btf_dump() local
1066 btf = libbpf_find_kernel_btf(); in test_btf_dump()
1067 if (!ASSERT_OK_PTR(btf, "no kernel BTF found")) in test_btf_dump()
1070 d = btf_dump__new(btf, btf_dump_snprintf, str, NULL); in test_btf_dump()
1076 test_btf_dump_int_data(btf, d, str); in test_btf_dump()
1078 test_btf_dump_float_data(btf, d, str); in test_btf_dump()
1080 test_btf_dump_char_data(btf, d, str); in test_btf_dump()
1082 test_btf_dump_typedef_data(btf, d, str); in test_btf_dump()
1084 test_btf_dump_enum_data(btf, d, str); in test_btf_dump()
1086 test_btf_dump_struct_data(btf, d, str); in test_btf_dump()
1088 test_btf_dump_var_data(btf, d, str); in test_btf_dump()
1092 btf__free(btf); in test_btf_dump()