Lines Matching refs:cands
5440 void bpf_core_free_cands(struct bpf_core_cand_list *cands) in bpf_core_free_cands() argument
5442 if (!cands) in bpf_core_free_cands()
5445 free(cands->cands); in bpf_core_free_cands()
5446 free(cands); in bpf_core_free_cands()
5454 struct bpf_core_cand_list *cands) in bpf_core_add_cands() argument
5486 new_cands = libbpf_reallocarray(cands->cands, cands->len + 1, in bpf_core_add_cands()
5487 sizeof(*cands->cands)); in bpf_core_add_cands()
5491 cand = &new_cands[cands->len]; in bpf_core_add_cands()
5495 cands->cands = new_cands; in bpf_core_add_cands()
5496 cands->len++; in bpf_core_add_cands()
5601 struct bpf_core_cand_list *cands; in bpf_core_find_cands() local
5619 cands = calloc(1, sizeof(*cands)); in bpf_core_find_cands()
5620 if (!cands) in bpf_core_find_cands()
5625 err = bpf_core_add_cands(&local_cand, local_essent_len, main_btf, "vmlinux", 1, cands); in bpf_core_find_cands()
5630 if (cands->len) in bpf_core_find_cands()
5631 return cands; in bpf_core_find_cands()
5635 return cands; in bpf_core_find_cands()
5647 cands); in bpf_core_find_cands()
5652 return cands; in bpf_core_find_cands()
5654 bpf_core_free_cands(cands); in bpf_core_find_cands()
5741 struct bpf_core_cand_list *cands = NULL; in bpf_core_resolve_relo() local
5757 !hashmap__find(cand_cache, local_id, &cands)) { in bpf_core_resolve_relo()
5758 cands = bpf_core_find_cands(prog->obj, local_btf, local_id); in bpf_core_resolve_relo()
5759 if (IS_ERR(cands)) { in bpf_core_resolve_relo()
5762 local_name, PTR_ERR(cands)); in bpf_core_resolve_relo()
5763 return PTR_ERR(cands); in bpf_core_resolve_relo()
5765 err = hashmap__set(cand_cache, local_id, cands, NULL, NULL); in bpf_core_resolve_relo()
5767 bpf_core_free_cands(cands); in bpf_core_resolve_relo()
5772 return bpf_core_calc_relo_insn(prog_name, relo, relo_idx, local_btf, cands, specs_scratch, in bpf_core_resolve_relo()