bpf_linker
struct bpf_linker *linker;
LIBBPF_API struct bpf_linker *bpf_linker__new(const char *filename, struct bpf_linker_opts *opts);
LIBBPF_API struct bpf_linker *bpf_linker__new_fd(int fd, struct bpf_linker_opts *opts);
LIBBPF_API int bpf_linker__add_file(struct bpf_linker *linker,
LIBBPF_API int bpf_linker__add_fd(struct bpf_linker *linker, int fd,
LIBBPF_API int bpf_linker__add_buf(struct bpf_linker *linker, void *buf, size_t buf_sz,
LIBBPF_API int bpf_linker__finalize(struct bpf_linker *linker);
LIBBPF_API void bpf_linker__free(struct bpf_linker *linker);
static int init_sec(struct bpf_linker *linker, struct dst_sec *dst_sec, struct src_sec *src_sec)
static struct dst_sec *find_dst_sec_by_name(struct bpf_linker *linker, const char *sec_name)
static int extend_sec(struct bpf_linker *linker, struct dst_sec *dst, struct src_sec *src)
static int linker_append_sec_data(struct bpf_linker *linker, struct src_obj *obj)
static int linker_append_elf_syms(struct bpf_linker *linker, struct src_obj *obj)
static Elf64_Sym *get_sym_by_idx(struct bpf_linker *linker, size_t sym_idx)
static struct glob_sym *find_glob_sym(struct bpf_linker *linker, const char *sym_name)
static struct glob_sym *add_glob_sym(struct bpf_linker *linker)
static int init_output_elf(struct bpf_linker *linker);
static int bpf_linker_add_file(struct bpf_linker *linker, int fd,
static int linker_load_obj_file(struct bpf_linker *linker,
struct bpf_linker *linker, struct glob_sym *glob_sym,
static int linker_append_sec_data(struct bpf_linker *linker, struct src_obj *obj);
static int linker_append_elf_syms(struct bpf_linker *linker, struct src_obj *obj);
struct bpf_linker *linker, struct glob_sym *glob_sym,
static int linker_append_elf_sym(struct bpf_linker *linker, struct src_obj *obj,
static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *obj);
static int linker_append_btf(struct bpf_linker *linker, struct src_obj *obj);
static int linker_append_btf_ext(struct bpf_linker *linker, struct src_obj *obj);
static int finalize_btf(struct bpf_linker *linker);
static int finalize_btf_ext(struct bpf_linker *linker);
void bpf_linker__free(struct bpf_linker *linker)
static int linker_append_elf_sym(struct bpf_linker *linker, struct src_obj *obj,
static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *obj)
struct bpf_linker *bpf_linker__new(const char *filename, struct bpf_linker_opts *opts)
struct bpf_linker *linker;
static int linker_append_btf(struct bpf_linker *linker, struct src_obj *obj)
static int linker_append_btf_ext(struct bpf_linker *linker, struct src_obj *obj)
struct bpf_linker *bpf_linker__new_fd(int fd, struct bpf_linker_opts *opts)
struct bpf_linker *linker;
int bpf_linker__finalize(struct bpf_linker *linker)
static int emit_elf_data_sec(struct bpf_linker *linker, const char *sec_name,
static int finalize_btf(struct bpf_linker *linker)
static int emit_btf_ext_data(struct bpf_linker *linker, void *output,
static int finalize_btf_ext(struct bpf_linker *linker)
static struct dst_sec *add_dst_sec(struct bpf_linker *linker, const char *sec_name)
static Elf64_Sym *add_new_sym(struct bpf_linker *linker, size_t *sym_idx)
static int init_output_elf(struct bpf_linker *linker)
static int bpf_linker_add_file(struct bpf_linker *linker, int fd,
int bpf_linker__add_file(struct bpf_linker *linker, const char *filename,
int bpf_linker__add_fd(struct bpf_linker *linker, int fd,
int bpf_linker__add_buf(struct bpf_linker *linker, void *buf, size_t buf_sz,
static int linker_load_obj_file(struct bpf_linker *linker,