Commit 41ced4cd authored by Yonghong Song's avatar Yonghong Song Committed by Alexei Starovoitov

btf: Change BTF_KIND_* macros to enums

Change BTF_KIND_* macros to enums so they are encoded in dwarf and
appear in vmlinux.h. This will make it easier for bpf programs
to use these constants without macro definitions.
Signed-off-by: default avatarYonghong Song <yhs@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210914223009.245307-1-yhs@fb.com
parent 8987ede3
...@@ -56,25 +56,28 @@ struct btf_type { ...@@ -56,25 +56,28 @@ struct btf_type {
#define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_INFO_VLEN(info) ((info) & 0xffff)
#define BTF_INFO_KFLAG(info) ((info) >> 31) #define BTF_INFO_KFLAG(info) ((info) >> 31)
#define BTF_KIND_UNKN 0 /* Unknown */ enum {
#define BTF_KIND_INT 1 /* Integer */ BTF_KIND_UNKN = 0, /* Unknown */
#define BTF_KIND_PTR 2 /* Pointer */ BTF_KIND_INT = 1, /* Integer */
#define BTF_KIND_ARRAY 3 /* Array */ BTF_KIND_PTR = 2, /* Pointer */
#define BTF_KIND_STRUCT 4 /* Struct */ BTF_KIND_ARRAY = 3, /* Array */
#define BTF_KIND_UNION 5 /* Union */ BTF_KIND_STRUCT = 4, /* Struct */
#define BTF_KIND_ENUM 6 /* Enumeration */ BTF_KIND_UNION = 5, /* Union */
#define BTF_KIND_FWD 7 /* Forward */ BTF_KIND_ENUM = 6, /* Enumeration */
#define BTF_KIND_TYPEDEF 8 /* Typedef */ BTF_KIND_FWD = 7, /* Forward */
#define BTF_KIND_VOLATILE 9 /* Volatile */ BTF_KIND_TYPEDEF = 8, /* Typedef */
#define BTF_KIND_CONST 10 /* Const */ BTF_KIND_VOLATILE = 9, /* Volatile */
#define BTF_KIND_RESTRICT 11 /* Restrict */ BTF_KIND_CONST = 10, /* Const */
#define BTF_KIND_FUNC 12 /* Function */ BTF_KIND_RESTRICT = 11, /* Restrict */
#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */ BTF_KIND_FUNC = 12, /* Function */
#define BTF_KIND_VAR 14 /* Variable */ BTF_KIND_FUNC_PROTO = 13, /* Function Proto */
#define BTF_KIND_DATASEC 15 /* Section */ BTF_KIND_VAR = 14, /* Variable */
#define BTF_KIND_FLOAT 16 /* Floating point */ BTF_KIND_DATASEC = 15, /* Section */
#define BTF_KIND_MAX BTF_KIND_FLOAT BTF_KIND_FLOAT = 16, /* Floating point */
#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
NR_BTF_KINDS,
BTF_KIND_MAX = NR_BTF_KINDS - 1,
};
/* For some specific BTF_KIND, "struct btf_type" is immediately /* For some specific BTF_KIND, "struct btf_type" is immediately
* followed by extra data. * followed by extra data.
......
...@@ -56,25 +56,28 @@ struct btf_type { ...@@ -56,25 +56,28 @@ struct btf_type {
#define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_INFO_VLEN(info) ((info) & 0xffff)
#define BTF_INFO_KFLAG(info) ((info) >> 31) #define BTF_INFO_KFLAG(info) ((info) >> 31)
#define BTF_KIND_UNKN 0 /* Unknown */ enum {
#define BTF_KIND_INT 1 /* Integer */ BTF_KIND_UNKN = 0, /* Unknown */
#define BTF_KIND_PTR 2 /* Pointer */ BTF_KIND_INT = 1, /* Integer */
#define BTF_KIND_ARRAY 3 /* Array */ BTF_KIND_PTR = 2, /* Pointer */
#define BTF_KIND_STRUCT 4 /* Struct */ BTF_KIND_ARRAY = 3, /* Array */
#define BTF_KIND_UNION 5 /* Union */ BTF_KIND_STRUCT = 4, /* Struct */
#define BTF_KIND_ENUM 6 /* Enumeration */ BTF_KIND_UNION = 5, /* Union */
#define BTF_KIND_FWD 7 /* Forward */ BTF_KIND_ENUM = 6, /* Enumeration */
#define BTF_KIND_TYPEDEF 8 /* Typedef */ BTF_KIND_FWD = 7, /* Forward */
#define BTF_KIND_VOLATILE 9 /* Volatile */ BTF_KIND_TYPEDEF = 8, /* Typedef */
#define BTF_KIND_CONST 10 /* Const */ BTF_KIND_VOLATILE = 9, /* Volatile */
#define BTF_KIND_RESTRICT 11 /* Restrict */ BTF_KIND_CONST = 10, /* Const */
#define BTF_KIND_FUNC 12 /* Function */ BTF_KIND_RESTRICT = 11, /* Restrict */
#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */ BTF_KIND_FUNC = 12, /* Function */
#define BTF_KIND_VAR 14 /* Variable */ BTF_KIND_FUNC_PROTO = 13, /* Function Proto */
#define BTF_KIND_DATASEC 15 /* Section */ BTF_KIND_VAR = 14, /* Variable */
#define BTF_KIND_FLOAT 16 /* Floating point */ BTF_KIND_DATASEC = 15, /* Section */
#define BTF_KIND_MAX BTF_KIND_FLOAT BTF_KIND_FLOAT = 16, /* Floating point */
#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
NR_BTF_KINDS,
BTF_KIND_MAX = NR_BTF_KINDS - 1,
};
/* For some specific BTF_KIND, "struct btf_type" is immediately /* For some specific BTF_KIND, "struct btf_type" is immediately
* followed by extra data. * followed by extra data.
......
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