OSDN Git Service

libbpf: Remove BPF_EMBED_OBJ macro from libbpf.h
authorAndrii Nakryiko <andriin@fb.com>
Wed, 18 Dec 2019 05:25:51 +0000 (21:25 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 18 Dec 2019 06:16:36 +0000 (22:16 -0800)
Drop BPF_EMBED_OBJ and struct bpf_embed_data now that skeleton automatically
embeds contents of its source object file. While BPF_EMBED_OBJ is useful
independently of skeleton, we are currently don't have any use cases utilizing
it, so let's remove them until/if we need it.

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20191218052552.2915188-3-andriin@fb.com
tools/lib/bpf/libbpf.h

index 6340823..f708423 100644 (file)
@@ -600,41 +600,6 @@ bpf_program__bpil_offs_to_addr(struct bpf_prog_info_linear *info_linear);
  */
 LIBBPF_API int libbpf_num_possible_cpus(void);
 
-struct bpf_embed_data {
-       void *data;
-       size_t size;
-};
-
-#define BPF_EMBED_OBJ_DECLARE(NAME)                                    \
-extern struct bpf_embed_data NAME##_embed;                             \
-extern char NAME##_data[];                                             \
-extern char NAME##_data_end[];
-
-#define __BPF_EMBED_OBJ(NAME, PATH, SZ, ASM_TYPE)                      \
-asm (                                                                  \
-"      .pushsection \".rodata\", \"a\", @progbits              \n"     \
-"      .global "#NAME"_data                                    \n"     \
-#NAME"_data:                                                   \n"     \
-"      .incbin \"" PATH "\"                                    \n"     \
-"      .global "#NAME"_data_end                                \n"     \
-#NAME"_data_end:                                               \n"     \
-"      .global "#NAME"_embed                                   \n"     \
-"      .type "#NAME"_embed, @object                            \n"     \
-"      .size "#NAME"_size, "#SZ"                               \n"     \
-"      .align 8,                                               \n"     \
-#NAME"_embed:                                                  \n"     \
-"      "ASM_TYPE" "#NAME"_data                                 \n"     \
-"      "ASM_TYPE" "#NAME"_data_end - "#NAME"_data              \n"     \
-"      .popsection                                             \n"     \
-);                                                                     \
-BPF_EMBED_OBJ_DECLARE(NAME)
-
-#if __SIZEOF_POINTER__ == 4
-#define BPF_EMBED_OBJ(NAME, PATH) __BPF_EMBED_OBJ(NAME, PATH, 8, ".long")
-#else
-#define BPF_EMBED_OBJ(NAME, PATH) __BPF_EMBED_OBJ(NAME, PATH, 16, ".quad")
-#endif
-
 struct bpf_map_skeleton {
        const char *name;
        struct bpf_map **map;