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: Yonghong Song <yhs@xxxxxx> --- include/uapi/linux/btf.h | 36 ++++++++++++++++++---------------- tools/include/uapi/linux/btf.h | 36 ++++++++++++++++++---------------- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/include/uapi/linux/btf.h b/include/uapi/linux/btf.h index d27b1708efe9..c32cd6697d63 100644 --- a/include/uapi/linux/btf.h +++ b/include/uapi/linux/btf.h @@ -56,23 +56,25 @@ struct btf_type { #define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_INFO_KFLAG(info) ((info) >> 31) -#define BTF_KIND_UNKN 0 /* Unknown */ -#define BTF_KIND_INT 1 /* Integer */ -#define BTF_KIND_PTR 2 /* Pointer */ -#define BTF_KIND_ARRAY 3 /* Array */ -#define BTF_KIND_STRUCT 4 /* Struct */ -#define BTF_KIND_UNION 5 /* Union */ -#define BTF_KIND_ENUM 6 /* Enumeration */ -#define BTF_KIND_FWD 7 /* Forward */ -#define BTF_KIND_TYPEDEF 8 /* Typedef */ -#define BTF_KIND_VOLATILE 9 /* Volatile */ -#define BTF_KIND_CONST 10 /* Const */ -#define BTF_KIND_RESTRICT 11 /* Restrict */ -#define BTF_KIND_FUNC 12 /* Function */ -#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */ -#define BTF_KIND_VAR 14 /* Variable */ -#define BTF_KIND_DATASEC 15 /* Section */ -#define BTF_KIND_FLOAT 16 /* Floating point */ +enum { + BTF_KIND_UNKN = 0, /* Unknown */ + BTF_KIND_INT, /* Integer */ + BTF_KIND_PTR, /* Pointer */ + BTF_KIND_ARRAY, /* Array */ + BTF_KIND_STRUCT, /* Struct */ + BTF_KIND_UNION, /* Union */ + BTF_KIND_ENUM, /* Enumeration */ + BTF_KIND_FWD, /* Forward */ + BTF_KIND_TYPEDEF, /* Typedef */ + BTF_KIND_VOLATILE, /* Volatile */ + BTF_KIND_CONST, /* Const */ + BTF_KIND_RESTRICT, /* Restrict */ + BTF_KIND_FUNC, /* Function */ + BTF_KIND_FUNC_PROTO, /* Function Proto */ + BTF_KIND_VAR, /* Variable */ + BTF_KIND_DATASEC, /* Section */ + BTF_KIND_FLOAT, /* Floating point */ +}; #define BTF_KIND_MAX BTF_KIND_FLOAT #define NR_BTF_KINDS (BTF_KIND_MAX + 1) diff --git a/tools/include/uapi/linux/btf.h b/tools/include/uapi/linux/btf.h index d27b1708efe9..c32cd6697d63 100644 --- a/tools/include/uapi/linux/btf.h +++ b/tools/include/uapi/linux/btf.h @@ -56,23 +56,25 @@ struct btf_type { #define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_INFO_KFLAG(info) ((info) >> 31) -#define BTF_KIND_UNKN 0 /* Unknown */ -#define BTF_KIND_INT 1 /* Integer */ -#define BTF_KIND_PTR 2 /* Pointer */ -#define BTF_KIND_ARRAY 3 /* Array */ -#define BTF_KIND_STRUCT 4 /* Struct */ -#define BTF_KIND_UNION 5 /* Union */ -#define BTF_KIND_ENUM 6 /* Enumeration */ -#define BTF_KIND_FWD 7 /* Forward */ -#define BTF_KIND_TYPEDEF 8 /* Typedef */ -#define BTF_KIND_VOLATILE 9 /* Volatile */ -#define BTF_KIND_CONST 10 /* Const */ -#define BTF_KIND_RESTRICT 11 /* Restrict */ -#define BTF_KIND_FUNC 12 /* Function */ -#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */ -#define BTF_KIND_VAR 14 /* Variable */ -#define BTF_KIND_DATASEC 15 /* Section */ -#define BTF_KIND_FLOAT 16 /* Floating point */ +enum { + BTF_KIND_UNKN = 0, /* Unknown */ + BTF_KIND_INT, /* Integer */ + BTF_KIND_PTR, /* Pointer */ + BTF_KIND_ARRAY, /* Array */ + BTF_KIND_STRUCT, /* Struct */ + BTF_KIND_UNION, /* Union */ + BTF_KIND_ENUM, /* Enumeration */ + BTF_KIND_FWD, /* Forward */ + BTF_KIND_TYPEDEF, /* Typedef */ + BTF_KIND_VOLATILE, /* Volatile */ + BTF_KIND_CONST, /* Const */ + BTF_KIND_RESTRICT, /* Restrict */ + BTF_KIND_FUNC, /* Function */ + BTF_KIND_FUNC_PROTO, /* Function Proto */ + BTF_KIND_VAR, /* Variable */ + BTF_KIND_DATASEC, /* Section */ + BTF_KIND_FLOAT, /* Floating point */ +}; #define BTF_KIND_MAX BTF_KIND_FLOAT #define NR_BTF_KINDS (BTF_KIND_MAX + 1) -- 2.30.2