Skip to content

Commit 76e4fed

Browse files
mykyta5Alexei Starovoitov
authored andcommitted
lib: move freader into buildid.h
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 <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
1 parent 531b87d commit 76e4fed

File tree

3 files changed

+31
-24
lines changed

3 files changed

+31
-24
lines changed

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4648,6 +4648,7 @@ F: Documentation/userspace-api/ebpf/
46484648
F: arch/*/net/*
46494649
F: include/linux/bpf*
46504650
F: include/linux/btf*
4651+
F: include/linux/buildid.h
46514652
F: include/linux/filter.h
46524653
F: include/trace/events/xdp.h
46534654
F: include/uapi/linux/bpf*

include/linux/buildid.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,29 @@ void init_vmlinux_build_id(void);
1818
static inline void init_vmlinux_build_id(void) { }
1919
#endif
2020

21+
struct freader {
22+
void *buf;
23+
u32 buf_sz;
24+
int err;
25+
union {
26+
struct {
27+
struct file *file;
28+
struct folio *folio;
29+
void *addr;
30+
loff_t folio_off;
31+
bool may_fault;
32+
};
33+
struct {
34+
const char *data;
35+
u64 data_sz;
36+
};
37+
};
38+
};
39+
40+
void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
41+
struct file *file, bool may_fault);
42+
void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz);
43+
const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz);
44+
void freader_cleanup(struct freader *r);
45+
2146
#endif

lib/buildid.c

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,8 @@
1111

1212
#define MAX_PHDR_CNT 256
1313

14-
struct freader {
15-
void *buf;
16-
u32 buf_sz;
17-
int err;
18-
union {
19-
struct {
20-
struct file *file;
21-
struct folio *folio;
22-
void *addr;
23-
loff_t folio_off;
24-
bool may_fault;
25-
};
26-
struct {
27-
const char *data;
28-
u64 data_sz;
29-
};
30-
};
31-
};
32-
33-
static void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
34-
struct file *file, bool may_fault)
14+
void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
15+
struct file *file, bool may_fault)
3516
{
3617
memset(r, 0, sizeof(*r));
3718
r->buf = buf;
@@ -40,7 +21,7 @@ static void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz,
4021
r->may_fault = may_fault;
4122
}
4223

43-
static void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz)
24+
void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz)
4425
{
4526
memset(r, 0, sizeof(*r));
4627
r->data = data;
@@ -92,7 +73,7 @@ static int freader_get_folio(struct freader *r, loff_t file_off)
9273
return 0;
9374
}
9475

95-
static const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz)
76+
const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz)
9677
{
9778
size_t folio_sz;
9879

@@ -147,7 +128,7 @@ static const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz)
147128
return r->addr + (file_off - r->folio_off);
148129
}
149130

150-
static void freader_cleanup(struct freader *r)
131+
void freader_cleanup(struct freader *r)
151132
{
152133
if (!r->buf)
153134
return; /* non-file-backed mode */

0 commit comments

Comments
 (0)