Skip to content

Commit

Permalink
bpf: btf: Add BTF_KFUNCS_START/END macro pair
Browse files Browse the repository at this point in the history
This macro pair is functionally equivalent to BTF_SET8_START/END, except
with BTF_SET8_KFUNCS flag set in the btf_id_set8 flags field. The next
commit will codemod all kfunc set8s to this new variant such that all
kfuncs are tagged as such in .BTF_ids section.

Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
Link: https://lore.kernel.org/r/d536c57c7c2af428686853cc7396b7a44faa53b7.1706491398.git.dxu@dxuuu.xyz
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
  • Loading branch information
danobi authored and Alexei Starovoitov committed Feb 1, 2024
1 parent 79b4734 commit a05e904
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions include/linux/btf_ids.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ struct btf_id_set {
u32 ids[];
};

/* This flag implies BTF_SET8 holds kfunc(s) */
#define BTF_SET8_KFUNCS (1 << 0)

struct btf_id_set8 {
u32 cnt;
u32 flags;
Expand Down Expand Up @@ -204,6 +207,12 @@ asm( \
".popsection; \n"); \
extern struct btf_id_set8 name;

#define BTF_KFUNCS_START(name) \
__BTF_SET8_START(name, local, BTF_SET8_KFUNCS)

#define BTF_KFUNCS_END(name) \
BTF_SET8_END(name)

#else

#define BTF_ID_LIST(name) static u32 __maybe_unused name[64];
Expand All @@ -218,6 +227,8 @@ extern struct btf_id_set8 name;
#define BTF_SET_END(name)
#define BTF_SET8_START(name) static struct btf_id_set8 __maybe_unused name = { 0 };
#define BTF_SET8_END(name)
#define BTF_KFUNCS_START(name) static struct btf_id_set8 __maybe_unused name = { .flags = BTF_SET8_KFUNCS };
#define BTF_KFUNCS_END(name)

#endif /* CONFIG_DEBUG_INFO_BTF */

Expand Down

0 comments on commit a05e904

Please sign in to comment.