map_replace
const struct map_replace *a = p1, *b = p2;
struct map_replace *map_replace = NULL;
new_map_replace = libbpf_reallocarray(map_replace,
sizeof(*map_replace));
map_replace = new_map_replace;
map_replace[old_map_fds].idx = idx;
map_replace[old_map_fds].name = name;
map_replace[old_map_fds].fd = fd;
qsort(map_replace, old_map_fds, sizeof(*map_replace),
while (j < old_map_fds && map_replace[j].name) {
if (!strcmp(bpf_map__name(map), map_replace[j].name)) {
map_replace[j].idx = i;
if (map_replace[j].idx == -1) {
p_err("unable to find map '%s'", map_replace[j].name);
qsort(map_replace, old_map_fds, sizeof(*map_replace),
if (j < old_map_fds && idx == map_replace[j].idx) {
err = bpf_map__reuse_fd(map, map_replace[j++].fd);
if (j < old_map_fds && map_replace[j].idx == idx) {
p_err("map idx '%d' not used", map_replace[j].idx);
close(map_replace[i].fd);
free(map_replace);
close(map_replace[i].fd);
free(map_replace);