Lines Matching refs:tinfo
19 struct bpf_iter_target_info *tinfo; member
23 struct bpf_iter_target_info *tinfo; member
71 static inline bool bpf_iter_target_support_resched(const struct bpf_iter_target_info *tinfo) in bpf_iter_target_support_resched() argument
73 return tinfo->reg_info->feature & BPF_ITER_RESCHED; in bpf_iter_target_support_resched()
82 return bpf_iter_target_support_resched(iter_priv->tinfo); in bpf_iter_support_resched()
253 return link->tinfo->reg_info->seq_info; in __get_seq_info()
298 struct bpf_iter_target_info *tinfo; in bpf_iter_reg_target() local
300 tinfo = kzalloc(sizeof(*tinfo), GFP_KERNEL); in bpf_iter_reg_target()
301 if (!tinfo) in bpf_iter_reg_target()
304 tinfo->reg_info = reg_info; in bpf_iter_reg_target()
305 INIT_LIST_HEAD(&tinfo->list); in bpf_iter_reg_target()
308 list_add(&tinfo->list, &targets); in bpf_iter_reg_target()
316 struct bpf_iter_target_info *tinfo; in bpf_iter_unreg_target() local
320 list_for_each_entry(tinfo, &targets, list) { in bpf_iter_unreg_target()
321 if (reg_info == tinfo->reg_info) { in bpf_iter_unreg_target()
322 list_del(&tinfo->list); in bpf_iter_unreg_target()
323 kfree(tinfo); in bpf_iter_unreg_target()
333 static void cache_btf_id(struct bpf_iter_target_info *tinfo, in cache_btf_id() argument
336 tinfo->btf_id = prog->aux->attach_btf_id; in cache_btf_id()
342 struct bpf_iter_target_info *tinfo = NULL, *iter; in bpf_iter_prog_supported() local
353 tinfo = iter; in bpf_iter_prog_supported()
358 tinfo = iter; in bpf_iter_prog_supported()
364 if (tinfo) { in bpf_iter_prog_supported()
365 prog->aux->ctx_arg_info_size = tinfo->reg_info->ctx_arg_info_size; in bpf_iter_prog_supported()
366 prog->aux->ctx_arg_info = tinfo->reg_info->ctx_arg_info; in bpf_iter_prog_supported()
369 return tinfo != NULL; in bpf_iter_prog_supported()
375 const struct bpf_iter_target_info *tinfo; in bpf_iter_get_func_proto() local
379 list_for_each_entry(tinfo, &targets, list) { in bpf_iter_get_func_proto()
380 if (tinfo->btf_id == prog->aux->attach_btf_id) { in bpf_iter_get_func_proto()
383 reg_info = tinfo->reg_info; in bpf_iter_get_func_proto()
399 if (iter_link->tinfo->reg_info->detach_target) in bpf_iter_link_release()
400 iter_link->tinfo->reg_info->detach_target(&iter_link->aux); in bpf_iter_link_release()
447 iter_link->tinfo->reg_info->target); in bpf_iter_link_show_fdinfo()
449 show_fdinfo = iter_link->tinfo->reg_info->show_fdinfo; in bpf_iter_link_show_fdinfo()
468 target_name = iter_link->tinfo->reg_info->target; in bpf_iter_link_fill_link_info()
487 fill_link_info = iter_link->tinfo->reg_info->fill_link_info; in bpf_iter_link_fill_link_info()
510 struct bpf_iter_target_info *tinfo = NULL, *iter; in bpf_iter_link_attach() local
542 tinfo = iter; in bpf_iter_link_attach()
547 if (!tinfo) in bpf_iter_link_attach()
551 if (prog->aux->sleepable && !bpf_iter_target_support_resched(tinfo)) in bpf_iter_link_attach()
559 link->tinfo = tinfo; in bpf_iter_link_attach()
567 if (tinfo->reg_info->attach_target) { in bpf_iter_link_attach()
568 err = tinfo->reg_info->attach_target(prog, &linfo, &link->aux); in bpf_iter_link_attach()
579 struct bpf_iter_target_info *tinfo, in init_seq_meta() argument
583 priv_data->tinfo = tinfo; in init_seq_meta()
595 struct bpf_iter_target_info *tinfo; in prepare_seq_file() local
606 tinfo = link->tinfo; in prepare_seq_file()
622 init_seq_meta(priv_data, tinfo, seq_info, prog); in prepare_seq_file()