mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 14:05:39 +00:00
bpf: btf: Add BTF_KFUNCS_START/END macro pair
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>
This commit is contained in:
parent
79b47344bb
commit
a05e90427e
@ -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;
|
||||
@ -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];
|
||||
@ -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 */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user