Lines Matching refs:kdesc

620 	struct ksym_desc *kdesc;  in get_ksym_desc()  local
624 kdesc = &gen->ksyms[i]; in get_ksym_desc()
625 if (kdesc->kind == relo->kind && kdesc->is_ld64 == relo->is_ld64 && in get_ksym_desc()
626 !strcmp(kdesc->name, relo->name)) { in get_ksym_desc()
627 kdesc->ref++; in get_ksym_desc()
628 return kdesc; in get_ksym_desc()
631 kdesc = libbpf_reallocarray(gen->ksyms, gen->nr_ksyms + 1, sizeof(*kdesc)); in get_ksym_desc()
632 if (!kdesc) { in get_ksym_desc()
636 gen->ksyms = kdesc; in get_ksym_desc()
637 kdesc = &gen->ksyms[gen->nr_ksyms++]; in get_ksym_desc()
638 kdesc->name = relo->name; in get_ksym_desc()
639 kdesc->kind = relo->kind; in get_ksym_desc()
640 kdesc->ref = 1; in get_ksym_desc()
641 kdesc->off = 0; in get_ksym_desc()
642 kdesc->insn = 0; in get_ksym_desc()
643 kdesc->is_ld64 = relo->is_ld64; in get_ksym_desc()
644 return kdesc; in get_ksym_desc()
700 struct ksym_desc *kdesc; in emit_relo_kfunc_btf() local
703 kdesc = get_ksym_desc(gen, relo); in emit_relo_kfunc_btf()
704 if (!kdesc) in emit_relo_kfunc_btf()
707 if (kdesc->ref > 1) { in emit_relo_kfunc_btf()
709 kdesc->insn + offsetof(struct bpf_insn, imm)); in emit_relo_kfunc_btf()
711 kdesc->insn + offsetof(struct bpf_insn, off)); in emit_relo_kfunc_btf()
715 kdesc->insn = insn; in emit_relo_kfunc_btf()
727 kdesc->off = btf_fd_idx; in emit_relo_kfunc_btf()
761 relo->name, kdesc->ref); in emit_relo_kfunc_btf()
763 0, 0, 0, blob_fd_array_off(gen, kdesc->off))); in emit_relo_kfunc_btf()
766 relo->name, kdesc->ref); in emit_relo_kfunc_btf()
791 struct ksym_desc *kdesc; in emit_relo_ksym_typeless() local
793 kdesc = get_ksym_desc(gen, relo); in emit_relo_ksym_typeless()
794 if (!kdesc) in emit_relo_ksym_typeless()
797 if (kdesc->ref > 1) { in emit_relo_ksym_typeless()
799 kdesc->insn + offsetof(struct bpf_insn, imm)); in emit_relo_ksym_typeless()
801 kdesc->insn + sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm)); in emit_relo_ksym_typeless()
805 kdesc->insn = insn; in emit_relo_ksym_typeless()
807 kdesc->typeless = true; in emit_relo_ksym_typeless()
818 emit_ksym_relo_log(gen, relo, kdesc->ref); in emit_relo_ksym_typeless()
837 struct ksym_desc *kdesc; in emit_relo_ksym_btf() local
840 kdesc = get_ksym_desc(gen, relo); in emit_relo_ksym_btf()
841 if (!kdesc) in emit_relo_ksym_btf()
844 if (kdesc->ref > 1) { in emit_relo_ksym_btf()
846 kdesc->insn + sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm)); in emit_relo_ksym_btf()
848 kdesc->insn + offsetof(struct bpf_insn, imm)); in emit_relo_ksym_btf()
856 kdesc->insn = insn; in emit_relo_ksym_btf()
882 emit_ksym_relo_log(gen, relo, kdesc->ref); in emit_relo_ksym_btf()
938 struct ksym_desc *kdesc; in cleanup_relos() local
942 kdesc = &gen->ksyms[i]; in cleanup_relos()
944 if (kdesc->is_ld64 && !kdesc->typeless) { in cleanup_relos()
946 insn = kdesc->insn; in cleanup_relos()
949 } else if (!kdesc->is_ld64) { in cleanup_relos()
950 emit_sys_close_blob(gen, blob_fd_array_off(gen, kdesc->off)); in cleanup_relos()
951 if (kdesc->off < MAX_FD_ARRAY_SZ) in cleanup_relos()