Commit 74662ea5 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by Daniel Borkmann

samples: bpf: rename struct bpf_map_def to avoid conflict with libbpf

Both tools/lib/bpf/libbpf.h and samples/bpf/bpf_load.h define their
own version of struct bpf_map_def.  The version in bpf_load.h has
more fields.  libbpf does not support inner maps and its definition
of struct bpf_map_def lacks the related fields.  Rename the definition
in bpf_load.h (samples/bpf) to avoid conflicts.
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: default avatarQuentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent e3687510
...@@ -420,7 +420,7 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx, ...@@ -420,7 +420,7 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx,
/* Keeping compatible with ELF maps section changes /* Keeping compatible with ELF maps section changes
* ------------------------------------------------ * ------------------------------------------------
* The program size of struct bpf_map_def is known by loader * The program size of struct bpf_load_map_def is known by loader
* code, but struct stored in ELF file can be different. * code, but struct stored in ELF file can be different.
* *
* Unfortunately sym[i].st_size is zero. To calculate the * Unfortunately sym[i].st_size is zero. To calculate the
...@@ -429,7 +429,7 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx, ...@@ -429,7 +429,7 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx,
* symbols. * symbols.
*/ */
map_sz_elf = data_maps->d_size / nr_maps; map_sz_elf = data_maps->d_size / nr_maps;
map_sz_copy = sizeof(struct bpf_map_def); map_sz_copy = sizeof(struct bpf_load_map_def);
if (map_sz_elf < map_sz_copy) { if (map_sz_elf < map_sz_copy) {
/* /*
* Backward compat, loading older ELF file with * Backward compat, loading older ELF file with
...@@ -448,8 +448,8 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx, ...@@ -448,8 +448,8 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx,
/* Memcpy relevant part of ELF maps data to loader maps */ /* Memcpy relevant part of ELF maps data to loader maps */
for (i = 0; i < nr_maps; i++) { for (i = 0; i < nr_maps; i++) {
struct bpf_load_map_def *def;
unsigned char *addr, *end; unsigned char *addr, *end;
struct bpf_map_def *def;
const char *map_name; const char *map_name;
size_t offset; size_t offset;
...@@ -464,9 +464,9 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx, ...@@ -464,9 +464,9 @@ static int load_elf_maps_section(struct bpf_map_data *maps, int maps_shndx,
/* Symbol value is offset into ELF maps section data area */ /* Symbol value is offset into ELF maps section data area */
offset = sym[i].st_value; offset = sym[i].st_value;
def = (struct bpf_map_def *)(data_maps->d_buf + offset); def = (struct bpf_load_map_def *)(data_maps->d_buf + offset);
maps[i].elf_offset = offset; maps[i].elf_offset = offset;
memset(&maps[i].def, 0, sizeof(struct bpf_map_def)); memset(&maps[i].def, 0, sizeof(struct bpf_load_map_def));
memcpy(&maps[i].def, def, map_sz_copy); memcpy(&maps[i].def, def, map_sz_copy);
/* Verify no newer features were requested */ /* Verify no newer features were requested */
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#define MAX_MAPS 32 #define MAX_MAPS 32
#define MAX_PROGS 32 #define MAX_PROGS 32
struct bpf_map_def { struct bpf_load_map_def {
unsigned int type; unsigned int type;
unsigned int key_size; unsigned int key_size;
unsigned int value_size; unsigned int value_size;
...@@ -21,7 +21,7 @@ struct bpf_map_data { ...@@ -21,7 +21,7 @@ struct bpf_map_data {
int fd; int fd;
char *name; char *name;
size_t elf_offset; size_t elf_offset;
struct bpf_map_def def; struct bpf_load_map_def def;
}; };
typedef void (*fixup_map_cb)(struct bpf_map_data *map, int idx); typedef void (*fixup_map_cb)(struct bpf_map_data *map, int idx);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment