tools/bpf: Sync kernel btf.h header
authorMartin KaFai Lau <kafai@fb.com>
Mon, 19 Nov 2018 23:29:09 +0000 (15:29 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 20 Nov 2018 18:54:38 +0000 (10:54 -0800)
The kernel uapi btf.h is synced to the tools directory.

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/include/uapi/linux/btf.h

index 972265f..14f6694 100644 (file)
@@ -40,7 +40,8 @@ struct btf_type {
        /* "size" is used by INT, ENUM, STRUCT and UNION.
         * "size" tells the size of the type it is describing.
         *
-        * "type" is used by PTR, TYPEDEF, VOLATILE, CONST and RESTRICT.
+        * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
+        * FUNC and FUNC_PROTO.
         * "type" is a type_id referring to another type.
         */
        union {
@@ -64,8 +65,10 @@ struct btf_type {
 #define BTF_KIND_VOLATILE      9       /* Volatile     */
 #define BTF_KIND_CONST         10      /* Const        */
 #define BTF_KIND_RESTRICT      11      /* Restrict     */
-#define BTF_KIND_MAX           11
-#define NR_BTF_KINDS           12
+#define BTF_KIND_FUNC          12      /* Function     */
+#define BTF_KIND_FUNC_PROTO    13      /* Function Proto       */
+#define BTF_KIND_MAX           13
+#define NR_BTF_KINDS           14
 
 /* For some specific BTF_KIND, "struct btf_type" is immediately
  * followed by extra data.
@@ -110,4 +113,13 @@ struct btf_member {
        __u32   offset; /* offset in bits */
 };
 
+/* BTF_KIND_FUNC_PROTO is followed by multiple "struct btf_param".
+ * The exact number of btf_param is stored in the vlen (of the
+ * info in "struct btf_type").
+ */
+struct btf_param {
+       __u32   name_off;
+       __u32   type;
+};
+
 #endif /* _UAPI__LINUX_BTF_H__ */