Commit 27774b70 authored by Lorenz Bauer's avatar Lorenz Bauer Committed by Alexei Starovoitov

btf: Add BTF_ID_LIST_SINGLE macro

Add a convenience macro that allows defining a BTF ID list with
a single item. This lets us cut down on repetitive macros.
Suggested-by: default avatarAndrii Nakryiko <andriin@fb.com>
Signed-off-by: default avatarLorenz Bauer <lmb@cloudflare.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20200921121227.255763-4-lmb@cloudflare.com
parent 0d004c02
...@@ -76,6 +76,13 @@ extern u32 name[]; ...@@ -76,6 +76,13 @@ extern u32 name[];
#define BTF_ID_LIST_GLOBAL(name) \ #define BTF_ID_LIST_GLOBAL(name) \
__BTF_ID_LIST(name, globl) __BTF_ID_LIST(name, globl)
/* The BTF_ID_LIST_SINGLE macro defines a BTF_ID_LIST with
* a single entry.
*/
#define BTF_ID_LIST_SINGLE(name, prefix, typename) \
BTF_ID_LIST(name) \
BTF_ID(prefix, typename)
/* /*
* The BTF_ID_UNUSED macro defines 4 zero bytes. * The BTF_ID_UNUSED macro defines 4 zero bytes.
* It's used when we want to define 'unused' entry * It's used when we want to define 'unused' entry
...@@ -140,6 +147,7 @@ extern struct btf_id_set name; ...@@ -140,6 +147,7 @@ extern struct btf_id_set name;
#define BTF_ID(prefix, name) #define BTF_ID(prefix, name)
#define BTF_ID_UNUSED #define BTF_ID_UNUSED
#define BTF_ID_LIST_GLOBAL(name) u32 name[1]; #define BTF_ID_LIST_GLOBAL(name) u32 name[1];
#define BTF_ID_LIST_SINGLE(name, prefix, typename) static u32 name[1];
#define BTF_SET_START(name) static struct btf_id_set name = { 0 }; #define BTF_SET_START(name) static struct btf_id_set name = { 0 };
#define BTF_SET_START_GLOBAL(name) static struct btf_id_set name = { 0 }; #define BTF_SET_START_GLOBAL(name) static struct btf_id_set name = { 0 };
#define BTF_SET_END(name) #define BTF_SET_END(name)
......
...@@ -76,6 +76,13 @@ extern u32 name[]; ...@@ -76,6 +76,13 @@ extern u32 name[];
#define BTF_ID_LIST_GLOBAL(name) \ #define BTF_ID_LIST_GLOBAL(name) \
__BTF_ID_LIST(name, globl) __BTF_ID_LIST(name, globl)
/* The BTF_ID_LIST_SINGLE macro defines a BTF_ID_LIST with
* a single entry.
*/
#define BTF_ID_LIST_SINGLE(name, prefix, typename) \
BTF_ID_LIST(name) \
BTF_ID(prefix, typename)
/* /*
* The BTF_ID_UNUSED macro defines 4 zero bytes. * The BTF_ID_UNUSED macro defines 4 zero bytes.
* It's used when we want to define 'unused' entry * It's used when we want to define 'unused' entry
...@@ -140,6 +147,7 @@ extern struct btf_id_set name; ...@@ -140,6 +147,7 @@ extern struct btf_id_set name;
#define BTF_ID(prefix, name) #define BTF_ID(prefix, name)
#define BTF_ID_UNUSED #define BTF_ID_UNUSED
#define BTF_ID_LIST_GLOBAL(name) u32 name[1]; #define BTF_ID_LIST_GLOBAL(name) u32 name[1];
#define BTF_ID_LIST_SINGLE(name, prefix, typename) static u32 name[1];
#define BTF_SET_START(name) static struct btf_id_set name = { 0 }; #define BTF_SET_START(name) static struct btf_id_set name = { 0 };
#define BTF_SET_START_GLOBAL(name) static struct btf_id_set name = { 0 }; #define BTF_SET_START_GLOBAL(name) static struct btf_id_set name = { 0 };
#define BTF_SET_END(name) #define BTF_SET_END(name)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment