]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
lib: move freader into buildid.h
authorMykyta Yatsenko <yatsenko@meta.com>
Sun, 26 Oct 2025 20:38:46 +0000 (20:38 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 27 Oct 2025 16:56:27 +0000 (09:56 -0700)
Move struct freader and prototypes of the functions operating on it into
the buildid.h.

This allows reusing freader outside buildid, e.g. for file dynptr
support added later.

Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Link: https://lore.kernel.org/r/20251026203853.135105-4-mykyta.yatsenko5@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
MAINTAINERS
include/linux/buildid.h
lib/buildid.c

index 545a4776795e672cde60944f70cb13e95343eacb..7564692f2f3cb3f6f2a929382b84d52335873356 100644 (file)
@@ -4648,6 +4648,7 @@ F:        Documentation/userspace-api/ebpf/
 F:     arch/*/net/*
 F:     include/linux/bpf*
 F:     include/linux/btf*
+F:     include/linux/buildid.h
 F:     include/linux/filter.h
 F:     include/trace/events/xdp.h
 F:     include/uapi/linux/bpf*
index 014a88c410739e6dc4a6feae390653990baf06b7..831c1b4b626c879008f68b7e3d97a541692bb2f0 100644 (file)
@@ -18,4 +18,29 @@ void init_vmlinux_build_id(void);
 static inline void init_vmlinux_build_id(void) { }
 #endif
 
+struct freader {
+       void *buf;
+       u32 buf_sz;
+       int err;
+       union {
+               struct {
+                       struct file *file;
+                       struct folio *folio;
+                       void *addr;
+                       loff_t folio_off;
+                       bool may_fault;
+               };
+               struct {
+                       const char *data;
+                       u64 data_sz;
+               };
+       };
+};
+
+void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
+                           struct file *file, bool may_fault);
+void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz);
+const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz);
+void freader_cleanup(struct freader *r);
+
 #endif
index c4b0f376fb3410beac1e5223e3afdf85c7e16b81..df06e492810d188d665c4895912f13a076893b42 100644 (file)
 
 #define MAX_PHDR_CNT 256
 
-struct freader {
-       void *buf;
-       u32 buf_sz;
-       int err;
-       union {
-               struct {
-                       struct file *file;
-                       struct folio *folio;
-                       void *addr;
-                       loff_t folio_off;
-                       bool may_fault;
-               };
-               struct {
-                       const char *data;
-                       u64 data_sz;
-               };
-       };
-};
-
-static void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
-                                  struct file *file, bool may_fault)
+void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
+                           struct file *file, bool may_fault)
 {
        memset(r, 0, sizeof(*r));
        r->buf = buf;
@@ -40,7 +21,7 @@ static void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
        r->may_fault = may_fault;
 }
 
-static void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz)
+void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz)
 {
        memset(r, 0, sizeof(*r));
        r->data = data;
@@ -92,7 +73,7 @@ static int freader_get_folio(struct freader *r, loff_t file_off)
        return 0;
 }
 
-static const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz)
+const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz)
 {
        size_t folio_sz;
 
@@ -147,7 +128,7 @@ static const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz)
        return r->addr + (file_off - r->folio_off);
 }
 
-static void freader_cleanup(struct freader *r)
+void freader_cleanup(struct freader *r)
 {
        if (!r->buf)
                return; /* non-file-backed mode */