diff options
| author | Alastair Robertson <ajor@meta.com> | 2024-12-11 08:40:30 -0800 | 
|---|---|---|
| committer | Andrii Nakryiko <andrii@kernel.org> | 2024-12-12 15:16:53 -0800 | 
| commit | 6d5e5e5d7ce134a0b334c3bfe44a9326d8c5f32b (patch) | |
| tree | 56030fcfd759b2ac5333fe55f268ad46625674ca /tools/lib/bpf/libbpf.h | |
| parent | b641712925bfe89ff7217cc2d0b7a8e042df556b (diff) | |
libbpf: Extend linker API to support in-memory ELF files
The new_fd and add_fd functions correspond to the original new and
add_file functions, but accept an FD instead of a file name. This
gives API consumers the option of using anonymous files/memfds to
avoid writing ELFs to disk.
This new API will be useful for performing linking as part of
bpftrace's JIT compilation.
The add_buf function is a convenience wrapper that does the work of
creating a memfd for the caller.
Signed-off-by: Alastair Robertson <ajor@meta.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241211164030.573042-3-ajor@meta.com
Diffstat (limited to 'tools/lib/bpf/libbpf.h')
| -rw-r--r-- | tools/lib/bpf/libbpf.h | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h index b2ce3a72b11d..d45807103565 100644 --- a/tools/lib/bpf/libbpf.h +++ b/tools/lib/bpf/libbpf.h @@ -1796,9 +1796,14 @@ struct bpf_linker_file_opts {  struct bpf_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,  				    const char *filename,  				    const struct bpf_linker_file_opts *opts); +LIBBPF_API int bpf_linker__add_fd(struct bpf_linker *linker, int fd, +				  const struct bpf_linker_file_opts *opts); +LIBBPF_API int bpf_linker__add_buf(struct bpf_linker *linker, void *buf, size_t buf_sz, +				   const struct bpf_linker_file_opts *opts);  LIBBPF_API int bpf_linker__finalize(struct bpf_linker *linker);  LIBBPF_API void bpf_linker__free(struct bpf_linker *linker); | 
