Commit 3bf3c79b authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov
Browse files

libbpf: Remove BPF_EMBED_OBJ macro from libbpf.h



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: default avatarAndrii Nakryiko <andriin@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarYonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20191218052552.2915188-3-andriin@fb.com
parent 5dc7a8b2
Loading
Loading
Loading
Loading
+0 −35
Original line number Diff line number Diff line
@@ -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;