Lines Matching defs:dst
65 /* mapping of symbol indices from src to dst ELF */
67 /* mapping from the src BTF type IDs to dst ones */
1049 static bool secs_match(struct dst_sec *dst, struct src_sec *src)
1051 if (dst->ephemeral || src->ephemeral)
1054 if (dst->shdr->sh_type != src->shdr->sh_type) {
1055 pr_warn("sec %s types mismatch\n", dst->sec_name);
1058 if (dst->shdr->sh_flags != src->shdr->sh_flags) {
1059 pr_warn("sec %s flags mismatch\n", dst->sec_name);
1062 if (dst->shdr->sh_entsize != src->shdr->sh_entsize) {
1063 pr_warn("sec %s entsize mismatch\n", dst->sec_name);
1079 static int extend_sec(struct bpf_linker *linker, struct dst_sec *dst, struct src_sec *src)
1098 if (dst->ephemeral) {
1099 err = init_sec(linker, dst, src);
1104 dst_align = dst->shdr->sh_addralign;
1111 dst_align_sz = (dst->sec_sz + dst_align - 1) / dst_align * dst_align;
1117 tmp = realloc(dst->raw_data, dst_final_sz);
1119 * 1. When dst->raw_data is NULL it returns:
1121 * 2. When dst->raw_data is not-NULL it frees dst->raw_data and returns NULL,
1126 * dst->raw_data would be freed again in bpf_linker__free().
1132 dst->raw_data = tmp;
1134 /* pad dst section, if it's alignment forced size increase */
1135 memset(dst->raw_data + dst->sec_sz, 0, dst_align_sz - dst->sec_sz);
1137 memcpy(dst->raw_data + dst_align_sz, src->data->d_buf, src->shdr->sh_size);
1140 dst->sec_sz = dst_final_sz;
1141 dst->shdr->sh_size = dst_final_sz;
1142 dst->data->d_size = dst_final_sz;
1144 dst->shdr->sh_addralign = dst_align;
1145 dst->data->d_align = dst_align;
1608 pr_warn("global '%s': invalid dst map definition\n", sym_name);