The kernel uapi btf.h is synced to the tools directory.

Signed-off-by: Martin KaFai Lau <ka...@fb.com>
Signed-off-by: Yonghong Song <y...@fb.com>
---
 tools/include/uapi/linux/btf.h | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/tools/include/uapi/linux/btf.h b/tools/include/uapi/linux/btf.h
index 972265f32871..14f66948fc95 100644
--- a/tools/include/uapi/linux/btf.h
+++ b/tools/include/uapi/linux/btf.h
@@ -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__ */
-- 
2.17.1

Reply via email to