| /linux/tools/testing/selftests/bpf/prog_tests/ |
| H A D | module_fentry_shadow.c | 63 __s32 btf_id[2] = {}; in test_module_fentry_shadow() local 91 btf_id[0] = btf__find_by_name_kind(vmlinux_btf, symbol_name, BTF_KIND_FUNC); in test_module_fentry_shadow() 92 if (!ASSERT_GT(btf_id[0], 0, "btf_find_by_name")) in test_module_fentry_shadow() 95 btf_id[1] = btf__find_by_name_kind(mod_btf, symbol_name, BTF_KIND_FUNC); in test_module_fentry_shadow() 96 if (!ASSERT_GT(btf_id[1], 0, "btf_find_by_name")) in test_module_fentry_shadow() 100 load_opts.attach_btf_id = btf_id[i]; in test_module_fentry_shadow()
|
| H A D | fexit_bpf2bpf.c | 115 __s32 btf_id; in test_fexit_bpf2bpf_common() local 120 btf_id = btf__find_by_name_kind(btf, tgt_name + 1, BTF_KIND_FUNC); in test_fexit_bpf2bpf_common() 146 ASSERT_EQ(link_info.tracing.target_btf_id, btf_id, "link_tgt_btf_id"); in test_fexit_bpf2bpf_common() 446 if (!info.btf_id) in find_prog_btf_id() 449 btf = btf__load_from_kernel_by_id(info.btf_id); in find_prog_btf_id() 486 int btf_id; in test_fentry_to_cgroup_bpf() local 500 btf_id = find_prog_btf_id("bind_v4_prog", bpf_program__fd(skel->progs.bind_v4_prog)); in test_fentry_to_cgroup_bpf() 501 if (!ASSERT_GE(btf_id, 0, "find_prog_btf_id")) in test_fentry_to_cgroup_bpf() 504 fentry_fd = load_fentry(bpf_program__fd(skel->progs.bind_v4_prog), btf_id); in test_fentry_to_cgroup_bpf() 515 ASSERT_EQ(info.btf_id, 0, "info.btf_id"); in test_fentry_to_cgroup_bpf() [all …]
|
| H A D | tracing_failure.c | 60 int btf_id; in test_tracing_deny() local 63 btf_id = libbpf_find_vmlinux_btf_id("__rcu_read_lock", BPF_TRACE_FENTRY); in test_tracing_deny() 64 if (btf_id <= 0) { in test_tracing_deny()
|
| H A D | ctx_rewrite.c | 252 static int find_field_offset_aux(struct btf *btf, int btf_id, char *field_name, int off) in find_field_offset_aux() argument 254 const struct btf_type *type = btf__type_by_id(btf, btf_id); in find_field_offset_aux() 260 PRINT_FAIL("Can't find btf_type for id %d\n", btf_id); in find_field_offset_aux() 265 PRINT_FAIL("BTF id %d is not struct or union\n", btf_id); in find_field_offset_aux() 299 int btf_id, field_offset; in find_field_offset() local 313 btf_id = btf__find_by_name(btf, type_str); in find_field_offset() 314 if (btf_id < 0) { in find_field_offset() 319 field_offset = find_field_offset_aux(btf, btf_id, field_str, 0); in find_field_offset()
|
| H A D | fd_array.c | 302 __u32 btf_id; in check_fd_array_cnt__referenced_btfs() local 314 err = get_btf_id_by_fd(extra_fds[0], &btf_id); in check_fd_array_cnt__referenced_btfs() 323 if (!ASSERT_EQ(btf_exists(btf_id), true, "btf should exist")) in check_fd_array_cnt__referenced_btfs() 333 if (!btf_exists(btf_id)) in check_fd_array_cnt__referenced_btfs()
|
| /linux/tools/bpf/resolve_btfids/ |
| H A D | main.c | 101 struct btf_id { struct 178 static struct btf_id *btf_id__find(struct rb_root *root, const char *name) in btf_id__find() 181 struct btf_id *id; in btf_id__find() 185 id = rb_entry(p, struct btf_id, rb_node); in btf_id__find() 197 static struct btf_id * 202 struct btf_id *id; in btf_id__add() 207 id = rb_entry(parent, struct btf_id, rb_node); in btf_id__add() 260 static struct btf_id *add_set(struct object *obj, char *name, bool is_set8) in add_set() 278 static struct btf_id *add_symbol(struct rb_root *root, char *name, size_t size) in add_symbol() 452 struct btf_id *id; in symbols_collect() [all …]
|
| /linux/tools/perf/util/ |
| H A D | bpf-event.c | 105 u32 btf_id, in perf_env__fetch_btf() argument 118 node->id = btf_id; in perf_env__fetch_btf() 213 btf = btf__load_from_kernel_by_id(map_info.btf_id); in bpf_metadata_read_map_data() 591 if (info->btf_id && info->nr_func_info && info->func_info_rec_size) { in perf_event__synthesize_one_bpf_prog() 598 btf = btf__load_from_kernel_by_id(info->btf_id); in perf_event__synthesize_one_bpf_prog() 600 pr_debug("%s: failed to get BTF of id %u, aborting\n", __func__, info->btf_id); in perf_event__synthesize_one_bpf_prog() 604 perf_env__fetch_btf(env, info->btf_id, btf); in perf_event__synthesize_one_bpf_prog() 842 u32 btf_id; in perf_env__add_bpf_info() local 865 btf_id = info_linear->info.btf_id; in perf_env__add_bpf_info() 873 __func__, btf_id); in perf_env__add_bpf_info() [all …]
|
| H A D | env.c | 119 __u32 btf_id = btf_node->id; in __perf_env__insert_btf() local 128 if (btf_id < node->id) { in __perf_env__insert_btf() 130 } else if (btf_id > node->id) { in __perf_env__insert_btf() 133 pr_debug("duplicated btf %u\n", btf_id); in __perf_env__insert_btf() 144 struct btf_node *perf_env__find_btf(struct perf_env *env, __u32 btf_id) in perf_env__find_btf() argument 149 res = __perf_env__find_btf(env, btf_id); in perf_env__find_btf() 154 struct btf_node *__perf_env__find_btf(struct perf_env *env, __u32 btf_id) in __perf_env__find_btf() argument 163 if (btf_id < node->id) in __perf_env__find_btf() 165 else if (btf_id > node->id) in __perf_env__find_btf()
|
| H A D | env.h | 189 struct btf_node *perf_env__find_btf(struct perf_env *env, __u32 btf_id); 190 struct btf_node *__perf_env__find_btf(struct perf_env *env, __u32 btf_id);
|
| /linux/include/linux/ |
| H A D | bpf_verifier.h | 64 u32 btf_id; member 90 u32 btf_id; member 527 u32 btf_id; /* btf_id for struct typed var */ member 630 u32 btf_id; member 895 struct btf *btf, u32 btf_id) in bpf_trampoline_compute_key() argument 898 return ((u64)tgt_prog->aux->id << 32) | btf_id; in bpf_trampoline_compute_key() 900 return ((u64)btf_obj_id(btf) << 32) | 0x80000000 | btf_id; in bpf_trampoline_compute_key() 904 static inline void bpf_trampoline_unpack_key(u64 key, u32 *obj_id, u32 *btf_id) in bpf_trampoline_unpack_key() argument 908 if (btf_id) in bpf_trampoline_unpack_key() 909 *btf_id = key & 0x7FFFFFFF; in bpf_trampoline_unpack_key() [all …]
|
| H A D | bpf_lsm.h | 31 bool bpf_lsm_is_sleepable_hook(u32 btf_id); 58 static inline bool bpf_lsm_is_sleepable_hook(u32 btf_id) in bpf_lsm_is_sleepable_hook() argument
|
| H A D | btf.h | 128 u32 btf_id; member 133 u32 btf_id; member 585 s32 btf_find_dtor_kfunc(struct btf *btf, u32 btf_id); 588 struct btf_struct_meta *btf_find_struct_meta(const struct btf *btf, u32 btf_id); 652 static inline s32 btf_find_dtor_kfunc(struct btf *btf, u32 btf_id) in btf_find_dtor_kfunc() argument 661 static inline struct btf_struct_meta *btf_find_struct_meta(const struct btf *btf, u32 btf_id) in btf_find_struct_meta() argument
|
| /linux/tools/bpf/bpftool/ |
| H A D | btf.c | 854 static bool btf_is_kernel_module(__u32 btf_id) in btf_is_kernel_module() argument 862 btf_fd = bpf_btf_get_fd_by_id(btf_id); in btf_is_kernel_module() 864 p_err("can't get BTF object by id (%u): %s", btf_id, strerror(errno)); in btf_is_kernel_module() 874 p_err("can't get BTF (ID %u) object info: %s", btf_id, strerror(errno)); in btf_is_kernel_module() 888 __u32 btf_id = -1; in do_dump() local 913 btf_id = info.btf_id; in do_dump() 949 btf_id = info.btf_id; in do_dump() 953 btf_id = strtoul(*argv, &endptr, 0); in do_dump() 1043 if (!base_btf && btf_is_kernel_module(btf_id)) { in do_dump() 1049 btf = btf__load_from_kernel_by_id_split(btf_id, base_btf); in do_dump() [all …]
|
| H A D | map.c | 521 if (info->btf_id) in show_map_close_json() 522 jsonw_int_field(json_wtr, "btf_id", info->btf_id); in show_map_close_json() 614 if (info->btf_id || frozen) in show_map_close_plain() 617 if (info->btf_id) in show_map_close_plain() 618 printf("btf_id %u", info->btf_id); in show_map_close_plain() 621 printf("%sfrozen", info->btf_id ? " " : ""); in show_map_close_plain() 784 if (!info.btf_id) in maps_have_btf() 807 *btf = btf__load_from_kernel_by_id(info->btf_id); in get_map_kv_btf()
|
| /linux/kernel/bpf/ |
| H A D | bpf_lsm.c | 117 u32 btf_id = prog->aux->attach_btf_id; in bpf_lsm_verify_prog() local 126 if (btf_id_set_contains(&bpf_lsm_disabled_hooks, btf_id)) { in bpf_lsm_verify_prog() 128 btf_id, func_name); in bpf_lsm_verify_prog() 132 if (!btf_id_set_contains(&bpf_lsm_hooks, btf_id)) { in bpf_lsm_verify_prog() 134 btf_id, func_name); in bpf_lsm_verify_prog() 398 bool bpf_lsm_is_sleepable_hook(u32 btf_id) in BTF_ID() 400 return btf_id_set_contains(&sleepable_lsm_hooks, btf_id); in BTF_ID()
|
| H A D | verifier.c | 291 u32 btf_id; member 426 meta = btf_find_struct_meta(reg->btf, reg->btf_id); in reg_btf_record() 512 static bool is_sync_callback_calling_kfunc(u32 btf_id); 513 static bool is_async_callback_calling_kfunc(u32 btf_id); 514 static bool is_callback_calling_kfunc(u32 btf_id); 517 static bool is_bpf_wq_set_callback_impl_kfunc(u32 btf_id); 1009 struct btf *btf, u32 btf_id, int nr_slots) in mark_stack_slots_iter() argument 1036 st->iter.btf_id = btf_id; in mark_stack_slots_iter() 1107 struct btf *btf, u32 btf_id, int nr_slots) in is_iter_reg_valid_init() argument 1127 if (st->iter.btf != btf || st->iter.btf_id != btf_id) in is_iter_reg_valid_init() [all …]
|
| H A D | bpf_iter.c | 13 u32 btf_id; /* cached value */ member 334 tinfo->btf_id = prog->aux->attach_btf_id; in cache_btf_id() 350 if (iter->btf_id && iter->btf_id == prog_btf_id) { in bpf_iter_prog_supported() 377 if (tinfo->btf_id == prog->aux->attach_btf_id) { in bpf_iter_get_func_proto() 538 if (iter->btf_id == prog_btf_id) { in bpf_iter_link_attach()
|
| H A D | log.c | 511 const char *iter_type_str(const struct btf *btf, u32 btf_id) in iter_type_str() argument 513 if (!btf || btf_id == 0) in iter_type_str() 517 return btf_type_name(btf, btf_id) + sizeof(ITER_PREFIX) - 1; in iter_type_str() 697 verbose(env, "%s", btf_type_name(reg->btf, reg->btf_id)); in print_reg_state() 819 iter_type_str(reg->iter.btf, reg->iter.btf_id), in print_verifier_state()
|
| H A D | btf.c | 3864 field->kptr.btf_id = id; in btf_parse_kptr() 4095 u32 btf_id; in btf_check_and_fixup_fields() local 4104 rec->fields[i].kptr.btf_id); in btf_check_and_fixup_fields() 4114 btf_id = rec->fields[i].graph_root.value_btf_id; in btf_check_and_fixup_fields() 4115 meta = btf_find_struct_meta(btf, btf_id); in btf_check_and_fixup_fields() 5669 type->btf_id = i; in btf_parse_struct_metas() 5690 struct btf_struct_meta *btf_find_struct_meta(const struct btf *btf, u32 btf_id) in btf_find_struct_meta() argument 5694 BUILD_BUG_ON(offsetof(struct btf_struct_meta, btf_id) != 0); in btf_find_struct_meta() 5698 return bsearch(&btf_id, tab->types, tab->cnt, sizeof(tab->types[0]), btf_id_cmp_func); in btf_find_struct_meta() 6798 if (!ctx_arg_info->btf_id) { in btf_ctx_access() [all …]
|
| H A D | task_iter.c | 1055 task_reg_info.ctx_arg_info[0].btf_id = btf_tracing_ids[BTF_TRACING_TYPE_TASK]; in task_iter_init() 1060 task_file_reg_info.ctx_arg_info[0].btf_id = btf_tracing_ids[BTF_TRACING_TYPE_TASK]; in task_iter_init() 1061 task_file_reg_info.ctx_arg_info[1].btf_id = btf_tracing_ids[BTF_TRACING_TYPE_FILE]; in task_iter_init() 1066 task_vma_reg_info.ctx_arg_info[0].btf_id = btf_tracing_ids[BTF_TRACING_TYPE_TASK]; in task_iter_init() 1067 task_vma_reg_info.ctx_arg_info[1].btf_id = btf_tracing_ids[BTF_TRACING_TYPE_VMA]; in task_iter_init()
|
| /linux/tools/lib/bpf/ |
| H A D | linker.c | 91 int btf_id; member 1766 struct src_obj *obj, Elf64_Sym *sym, int btf_id) in glob_map_defs_match() argument 1773 t = btf__type_by_id(obj->btf, btf_id); in glob_map_defs_match() 1775 pr_warn("global '%s': invalid map definition type [%d]\n", sym_name, btf_id); in glob_map_defs_match() 1787 t = btf__type_by_id(linker->btf, glob_sym->btf_id); in glob_map_defs_match() 1806 struct src_obj *obj, Elf64_Sym *sym, size_t sym_idx, int btf_id) in glob_syms_match() argument 1813 if (!glob_sym->btf_id || !btf_id) { in glob_syms_match() 1818 src_t = btf__type_by_id(obj->btf, btf_id); in glob_syms_match() 1827 return glob_map_defs_match(sym_name, linker, glob_sym, obj, sym, btf_id); in glob_syms_match() 1830 linker->btf, glob_sym->btf_id, obj->btf, btf_id)) in glob_syms_match() [all …]
|
| /linux/kernel/bpf/preload/iterators/ |
| H A D | iterators.bpf.c | 59 static const char *get_name(struct btf *btf, long btf_id, const char *fallback) in get_name() argument 69 bpf_probe_read_kernel(&t, sizeof(t), types + btf_id); in get_name()
|
| /linux/tools/testing/selftests/bpf/ |
| H A D | test_verifier.c | 973 int btf_id = 0; in fixup_prog_kfuncs() local 978 btf_id = btf__find_by_name_kind(vmlinux_btf, in fixup_prog_kfuncs() 981 btf_id = btf_id < 0 ? 0 : btf_id; in fixup_prog_kfuncs() 985 if (!btf_id) { in fixup_prog_kfuncs() 988 btf_id = btf__find_by_name_kind(testmod_btf, in fixup_prog_kfuncs() 991 btf_id = btf_id < 0 ? 0 : btf_id; in fixup_prog_kfuncs() 992 if (btf_id) { in fixup_prog_kfuncs() 1002 prog[fixup_kfunc_btf_id->insn_idx].imm = btf_id; in fixup_prog_kfuncs()
|
| /linux/net/ipv4/ |
| H A D | bpf_tcp_ca.c | 54 info->btf_id == sock_id) in bpf_tcp_ca_is_valid_access() 56 info->btf_id = tcp_sock_id; in bpf_tcp_ca_is_valid_access() 68 t = btf_type_by_id(reg->btf, reg->btf_id); in bpf_tcp_ca_btf_struct_access()
|
| /linux/net/sched/ |
| H A D | bpf_qdisc.c | 46 info->btf_id = bpf_sk_buff_ptr_ids[0]; in BTF_ID_LIST_SINGLE() 106 t = btf_type_by_id(reg->btf, reg->btf_id); in bpf_qdisc_btf_struct_access() 459 .btf_id = bpf_sk_buff_ids[0], in BTF_ID_LIST_SINGLE()
|