OSDN Git Service

btf: Change BTF_KIND_* macros to enums
authorYonghong Song <yhs@fb.com>
Tue, 14 Sep 2021 22:30:09 +0000 (15:30 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 15 Sep 2021 01:45:52 +0000 (18:45 -0700)
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@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210914223009.245307-1-yhs@fb.com
include/uapi/linux/btf.h
tools/include/uapi/linux/btf.h

index d27b170..10e4010 100644 (file)
@@ -56,25 +56,28 @@ 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       */
-#define BTF_KIND_MAX           BTF_KIND_FLOAT
-#define NR_BTF_KINDS           (BTF_KIND_MAX + 1)
+enum {
+       BTF_KIND_UNKN           = 0,    /* Unknown      */
+       BTF_KIND_INT            = 1,    /* Integer      */
+       BTF_KIND_PTR            = 2,    /* Pointer      */
+       BTF_KIND_ARRAY          = 3,    /* Array        */
+       BTF_KIND_STRUCT         = 4,    /* Struct       */
+       BTF_KIND_UNION          = 5,    /* Union        */
+       BTF_KIND_ENUM           = 6,    /* Enumeration  */
+       BTF_KIND_FWD            = 7,    /* Forward      */
+       BTF_KIND_TYPEDEF        = 8,    /* Typedef      */
+       BTF_KIND_VOLATILE       = 9,    /* Volatile     */
+       BTF_KIND_CONST          = 10,   /* Const        */
+       BTF_KIND_RESTRICT       = 11,   /* Restrict     */
+       BTF_KIND_FUNC           = 12,   /* Function     */
+       BTF_KIND_FUNC_PROTO     = 13,   /* Function Proto       */
+       BTF_KIND_VAR            = 14,   /* Variable     */
+       BTF_KIND_DATASEC        = 15,   /* Section      */
+       BTF_KIND_FLOAT          = 16,   /* Floating point       */
+
+       NR_BTF_KINDS,
+       BTF_KIND_MAX            = NR_BTF_KINDS - 1,
+};
 
 /* For some specific BTF_KIND, "struct btf_type" is immediately
  * followed by extra data.
index d27b170..10e4010 100644 (file)
@@ -56,25 +56,28 @@ 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       */
-#define BTF_KIND_MAX           BTF_KIND_FLOAT
-#define NR_BTF_KINDS           (BTF_KIND_MAX + 1)
+enum {
+       BTF_KIND_UNKN           = 0,    /* Unknown      */
+       BTF_KIND_INT            = 1,    /* Integer      */
+       BTF_KIND_PTR            = 2,    /* Pointer      */
+       BTF_KIND_ARRAY          = 3,    /* Array        */
+       BTF_KIND_STRUCT         = 4,    /* Struct       */
+       BTF_KIND_UNION          = 5,    /* Union        */
+       BTF_KIND_ENUM           = 6,    /* Enumeration  */
+       BTF_KIND_FWD            = 7,    /* Forward      */
+       BTF_KIND_TYPEDEF        = 8,    /* Typedef      */
+       BTF_KIND_VOLATILE       = 9,    /* Volatile     */
+       BTF_KIND_CONST          = 10,   /* Const        */
+       BTF_KIND_RESTRICT       = 11,   /* Restrict     */
+       BTF_KIND_FUNC           = 12,   /* Function     */
+       BTF_KIND_FUNC_PROTO     = 13,   /* Function Proto       */
+       BTF_KIND_VAR            = 14,   /* Variable     */
+       BTF_KIND_DATASEC        = 15,   /* Section      */
+       BTF_KIND_FLOAT          = 16,   /* Floating point       */
+
+       NR_BTF_KINDS,
+       BTF_KIND_MAX            = NR_BTF_KINDS - 1,
+};
 
 /* For some specific BTF_KIND, "struct btf_type" is immediately
  * followed by extra data.