static int get_global_data()

in cli/bpfcov.c [989:1028]


static int get_global_data(int fd, struct bpf_map_info *info, void *data)
{
    int err;
    void *k, *v;
    k = malloc(info->key_size);
    v = malloc(info->value_size);
    if (!k || !v)
    {
        err = -1;
        goto error_out;
    }
    if (!info)
    {
        err = -1;
        goto error_out;
    }
    if (info->max_entries > 1)
    {
        err = -1;
        goto error_out;
    }

    err = bpf_map_get_next_key(fd, NULL, k);
    if (err)
    {
        goto error_out;
    }
    err = bpf_map_lookup_elem(fd, k, v);
    if (err)
    {
        goto error_out;
    }
    memcpy(data, v, info->value_size);

error_out:
    free(k);
    free(v);
    close(fd);
    return err;
}