Lines Matching refs:kfunc
158 struct kfunc { struct
169 struct kfunc *kfuncs; argument
910 static int push_kfunc(struct btf2btf_context *ctx, struct kfunc *kfunc) in push_kfunc() argument
912 struct kfunc *arr = ctx->kfuncs; in push_kfunc()
917 arr = realloc(arr, sizeof(struct kfunc) * cap); in push_kfunc()
924 ctx->kfuncs[ctx->nr_kfuncs++] = *kfunc; in push_kfunc()
998 struct kfunc kfunc; in collect_kfuncs() local
1029 kfunc.name = id->name; in collect_kfuncs()
1030 kfunc.btf_id = func_id; in collect_kfuncs()
1031 kfunc.flags = flags; in collect_kfuncs()
1033 err = push_kfunc(ctx, &kfunc); in collect_kfuncs()
1111 static int process_kfunc_with_implicit_args(struct btf2btf_context *ctx, struct kfunc *kfunc) in process_kfunc_with_implicit_args() argument
1122 t = (struct btf_type *)btf__type_by_id(btf, kfunc->btf_id); in process_kfunc_with_implicit_args()
1124 pr_err("ERROR: resolve_btfids: btf id %d is not a function\n", kfunc->btf_id); in process_kfunc_with_implicit_args()
1137 len = snprintf(tmp_name, sizeof(tmp_name), "%s%s", kfunc->name, KF_IMPL_SUFFIX); in process_kfunc_with_implicit_args()
1139 pr_err("ERROR: function name is too long: %s%s\n", kfunc->name, KF_IMPL_SUFFIX); in process_kfunc_with_implicit_args()
1158 if (t->type != kfunc->btf_id) in process_kfunc_with_implicit_args()
1183 pr_err("ERROR: resolve_btfids: failed to add func proto for %s\n", kfunc->name); in process_kfunc_with_implicit_args()
1198 param_name, kfunc->name); in process_kfunc_with_implicit_args()
1205 t = (struct btf_type *)btf__type_by_id(btf, kfunc->btf_id); in process_kfunc_with_implicit_args()
1208 pr_debug("resolve_btfids: updated BTF for kfunc with implicit args %s\n", kfunc->name); in process_kfunc_with_implicit_args()
1223 struct kfunc *kfunc = &ctx.kfuncs[i]; in btf2btf() local
1225 if (!(kfunc->flags & KF_IMPLICIT_ARGS)) in btf2btf()
1228 err = process_kfunc_with_implicit_args(&ctx, kfunc); in btf2btf()