Loading tools/include/uapi/linux/bpf.h +4 −4 Original line number Diff line number Diff line Loading @@ -284,8 +284,8 @@ union bpf_attr { char map_name[BPF_OBJ_NAME_LEN]; __u32 map_ifindex; /* ifindex of netdev to create on */ __u32 btf_fd; /* fd pointing to a BTF type data */ __u32 btf_key_id; /* BTF type_id of the key */ __u32 btf_value_id; /* BTF type_id of the value */ __u32 btf_key_type_id; /* BTF type_id of the key */ __u32 btf_value_type_id; /* BTF type_id of the value */ }; struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ Loading Loading @@ -2219,8 +2219,8 @@ struct bpf_map_info { __u64 netns_dev; __u64 netns_ino; __u32 btf_id; __u32 btf_key_id; __u32 btf_value_id; __u32 btf_key_type_id; __u32 btf_value_type_id; } __attribute__((aligned(8))); struct bpf_btf_info { Loading tools/include/uapi/linux/btf.h +11 −26 Original line number Diff line number Diff line Loading @@ -12,42 +12,29 @@ struct btf_header { __u16 magic; __u8 version; __u8 flags; __u32 parent_label; __u32 parent_name; __u32 hdr_len; /* All offsets are in bytes relative to the end of this header */ __u32 label_off; /* offset of label section */ __u32 object_off; /* offset of data object section*/ __u32 func_off; /* offset of function section */ __u32 type_off; /* offset of type section */ __u32 type_len; /* length of type section */ __u32 str_off; /* offset of string section */ __u32 str_len; /* length of string section */ }; /* Max # of type identifier */ #define BTF_MAX_TYPE 0x7fffffff #define BTF_MAX_TYPE 0x0000ffff /* Max offset into the string section */ #define BTF_MAX_NAME_OFFSET 0x7fffffff #define BTF_MAX_NAME_OFFSET 0x0000ffff /* Max # of struct/union/enum members or func args */ #define BTF_MAX_VLEN 0xffff /* The type id is referring to a parent BTF */ #define BTF_TYPE_PARENT(id) (((id) >> 31) & 0x1) #define BTF_TYPE_ID(id) ((id) & BTF_MAX_TYPE) /* String is in the ELF string section */ #define BTF_STR_TBL_ELF_ID(ref) (((ref) >> 31) & 0x1) #define BTF_STR_OFFSET(ref) ((ref) & BTF_MAX_NAME_OFFSET) struct btf_type { __u32 name_off; /* "info" bits arrangement * bits 0-15: vlen (e.g. # of struct's members) * bits 16-23: unused * bits 24-28: kind (e.g. int, ptr, array...etc) * bits 29-30: unused * bits 31: root * bits 24-27: kind (e.g. int, ptr, array...etc) * bits 28-31: unused */ __u32 info; /* "size" is used by INT, ENUM, STRUCT and UNION. Loading @@ -62,8 +49,7 @@ struct btf_type { }; }; #define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f) #define BTF_INFO_ISROOT(info) (!!(((info) >> 24) & 0x80)) #define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f) #define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_KIND_UNKN 0 /* Unknown */ Loading @@ -88,15 +74,14 @@ struct btf_type { /* BTF_KIND_INT is followed by a u32 and the following * is the 32 bits arrangement: */ #define BTF_INT_ENCODING(VAL) (((VAL) & 0xff000000) >> 24) #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) #define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) #define BTF_INT_BITS(VAL) ((VAL) & 0x0000ffff) /* Attributes stored in the BTF_INT_ENCODING */ #define BTF_INT_SIGNED 0x1 #define BTF_INT_CHAR 0x2 #define BTF_INT_BOOL 0x4 #define BTF_INT_VARARGS 0x8 #define BTF_INT_SIGNED (1 << 0) #define BTF_INT_CHAR (1 << 1) #define BTF_INT_BOOL (1 << 2) /* BTF_KIND_ENUM is followed by multiple "struct btf_enum". * The exact number of btf_enum is stored in the vlen (of the Loading Loading
tools/include/uapi/linux/bpf.h +4 −4 Original line number Diff line number Diff line Loading @@ -284,8 +284,8 @@ union bpf_attr { char map_name[BPF_OBJ_NAME_LEN]; __u32 map_ifindex; /* ifindex of netdev to create on */ __u32 btf_fd; /* fd pointing to a BTF type data */ __u32 btf_key_id; /* BTF type_id of the key */ __u32 btf_value_id; /* BTF type_id of the value */ __u32 btf_key_type_id; /* BTF type_id of the key */ __u32 btf_value_type_id; /* BTF type_id of the value */ }; struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ Loading Loading @@ -2219,8 +2219,8 @@ struct bpf_map_info { __u64 netns_dev; __u64 netns_ino; __u32 btf_id; __u32 btf_key_id; __u32 btf_value_id; __u32 btf_key_type_id; __u32 btf_value_type_id; } __attribute__((aligned(8))); struct bpf_btf_info { Loading
tools/include/uapi/linux/btf.h +11 −26 Original line number Diff line number Diff line Loading @@ -12,42 +12,29 @@ struct btf_header { __u16 magic; __u8 version; __u8 flags; __u32 parent_label; __u32 parent_name; __u32 hdr_len; /* All offsets are in bytes relative to the end of this header */ __u32 label_off; /* offset of label section */ __u32 object_off; /* offset of data object section*/ __u32 func_off; /* offset of function section */ __u32 type_off; /* offset of type section */ __u32 type_len; /* length of type section */ __u32 str_off; /* offset of string section */ __u32 str_len; /* length of string section */ }; /* Max # of type identifier */ #define BTF_MAX_TYPE 0x7fffffff #define BTF_MAX_TYPE 0x0000ffff /* Max offset into the string section */ #define BTF_MAX_NAME_OFFSET 0x7fffffff #define BTF_MAX_NAME_OFFSET 0x0000ffff /* Max # of struct/union/enum members or func args */ #define BTF_MAX_VLEN 0xffff /* The type id is referring to a parent BTF */ #define BTF_TYPE_PARENT(id) (((id) >> 31) & 0x1) #define BTF_TYPE_ID(id) ((id) & BTF_MAX_TYPE) /* String is in the ELF string section */ #define BTF_STR_TBL_ELF_ID(ref) (((ref) >> 31) & 0x1) #define BTF_STR_OFFSET(ref) ((ref) & BTF_MAX_NAME_OFFSET) struct btf_type { __u32 name_off; /* "info" bits arrangement * bits 0-15: vlen (e.g. # of struct's members) * bits 16-23: unused * bits 24-28: kind (e.g. int, ptr, array...etc) * bits 29-30: unused * bits 31: root * bits 24-27: kind (e.g. int, ptr, array...etc) * bits 28-31: unused */ __u32 info; /* "size" is used by INT, ENUM, STRUCT and UNION. Loading @@ -62,8 +49,7 @@ struct btf_type { }; }; #define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f) #define BTF_INFO_ISROOT(info) (!!(((info) >> 24) & 0x80)) #define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f) #define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_KIND_UNKN 0 /* Unknown */ Loading @@ -88,15 +74,14 @@ struct btf_type { /* BTF_KIND_INT is followed by a u32 and the following * is the 32 bits arrangement: */ #define BTF_INT_ENCODING(VAL) (((VAL) & 0xff000000) >> 24) #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) #define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) #define BTF_INT_BITS(VAL) ((VAL) & 0x0000ffff) /* Attributes stored in the BTF_INT_ENCODING */ #define BTF_INT_SIGNED 0x1 #define BTF_INT_CHAR 0x2 #define BTF_INT_BOOL 0x4 #define BTF_INT_VARARGS 0x8 #define BTF_INT_SIGNED (1 << 0) #define BTF_INT_CHAR (1 << 1) #define BTF_INT_BOOL (1 << 2) /* BTF_KIND_ENUM is followed by multiple "struct btf_enum". * The exact number of btf_enum is stored in the vlen (of the Loading