Commit fbcf93eb authored by Martin KaFai Lau's avatar Martin KaFai Lau Committed by Daniel Borkmann

bpf: btf: Clean up btf.h in uapi

This patch cleans up btf.h in uapi:
1) Rename "name" to "name_off" to better reflect it is an offset to the
   string section instead of a char array.
2) Remove unused value BTF_FLAGS_COMPR and BTF_MAGIC_SWAP
Suggested-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent aaa64527
...@@ -6,9 +6,7 @@ ...@@ -6,9 +6,7 @@
#include <linux/types.h> #include <linux/types.h>
#define BTF_MAGIC 0xeB9F #define BTF_MAGIC 0xeB9F
#define BTF_MAGIC_SWAP 0x9FeB
#define BTF_VERSION 1 #define BTF_VERSION 1
#define BTF_FLAGS_COMPR 0x01
struct btf_header { struct btf_header {
__u16 magic; __u16 magic;
...@@ -43,7 +41,7 @@ struct btf_header { ...@@ -43,7 +41,7 @@ struct btf_header {
#define BTF_STR_OFFSET(ref) ((ref) & BTF_MAX_NAME_OFFSET) #define BTF_STR_OFFSET(ref) ((ref) & BTF_MAX_NAME_OFFSET)
struct btf_type { struct btf_type {
__u32 name; __u32 name_off;
/* "info" bits arrangement /* "info" bits arrangement
* bits 0-15: vlen (e.g. # of struct's members) * bits 0-15: vlen (e.g. # of struct's members)
* bits 16-23: unused * bits 16-23: unused
...@@ -105,7 +103,7 @@ struct btf_type { ...@@ -105,7 +103,7 @@ struct btf_type {
* info in "struct btf_type"). * info in "struct btf_type").
*/ */
struct btf_enum { struct btf_enum {
__u32 name; __u32 name_off;
__s32 val; __s32 val;
}; };
...@@ -122,7 +120,7 @@ struct btf_array { ...@@ -122,7 +120,7 @@ struct btf_array {
* "struct btf_type"). * "struct btf_type").
*/ */
struct btf_member { struct btf_member {
__u32 name; __u32 name_off;
__u32 type; __u32 type;
__u32 offset; /* offset in bits */ __u32 offset; /* offset in bits */
}; };
......
...@@ -473,7 +473,7 @@ __printf(4, 5) static void __btf_verifier_log_type(struct btf_verifier_env *env, ...@@ -473,7 +473,7 @@ __printf(4, 5) static void __btf_verifier_log_type(struct btf_verifier_env *env,
__btf_verifier_log(log, "[%u] %s %s%s", __btf_verifier_log(log, "[%u] %s %s%s",
env->log_type_id, env->log_type_id,
btf_kind_str[kind], btf_kind_str[kind],
btf_name_by_offset(btf, t->name), btf_name_by_offset(btf, t->name_off),
log_details ? " " : ""); log_details ? " " : "");
if (log_details) if (log_details)
...@@ -517,7 +517,7 @@ static void btf_verifier_log_member(struct btf_verifier_env *env, ...@@ -517,7 +517,7 @@ static void btf_verifier_log_member(struct btf_verifier_env *env,
btf_verifier_log_type(env, struct_type, NULL); btf_verifier_log_type(env, struct_type, NULL);
__btf_verifier_log(log, "\t%s type_id=%u bits_offset=%u", __btf_verifier_log(log, "\t%s type_id=%u bits_offset=%u",
btf_name_by_offset(btf, member->name), btf_name_by_offset(btf, member->name_off),
member->type, member->offset); member->type, member->offset);
if (fmt && *fmt) { if (fmt && *fmt) {
...@@ -1419,10 +1419,10 @@ static s32 btf_struct_check_meta(struct btf_verifier_env *env, ...@@ -1419,10 +1419,10 @@ static s32 btf_struct_check_meta(struct btf_verifier_env *env,
btf_verifier_log_type(env, t, NULL); btf_verifier_log_type(env, t, NULL);
for_each_member(i, t, member) { for_each_member(i, t, member) {
if (!btf_name_offset_valid(btf, member->name)) { if (!btf_name_offset_valid(btf, member->name_off)) {
btf_verifier_log_member(env, t, member, btf_verifier_log_member(env, t, member,
"Invalid member name_offset:%u", "Invalid member name_offset:%u",
member->name); member->name_off);
return -EINVAL; return -EINVAL;
} }
...@@ -1605,14 +1605,14 @@ static s32 btf_enum_check_meta(struct btf_verifier_env *env, ...@@ -1605,14 +1605,14 @@ static s32 btf_enum_check_meta(struct btf_verifier_env *env,
btf_verifier_log_type(env, t, NULL); btf_verifier_log_type(env, t, NULL);
for (i = 0; i < nr_enums; i++) { for (i = 0; i < nr_enums; i++) {
if (!btf_name_offset_valid(btf, enums[i].name)) { if (!btf_name_offset_valid(btf, enums[i].name_off)) {
btf_verifier_log(env, "\tInvalid name_offset:%u", btf_verifier_log(env, "\tInvalid name_offset:%u",
enums[i].name); enums[i].name_off);
return -EINVAL; return -EINVAL;
} }
btf_verifier_log(env, "\t%s val=%d\n", btf_verifier_log(env, "\t%s val=%d\n",
btf_name_by_offset(btf, enums[i].name), btf_name_by_offset(btf, enums[i].name_off),
enums[i].val); enums[i].val);
} }
...@@ -1636,7 +1636,7 @@ static void btf_enum_seq_show(const struct btf *btf, const struct btf_type *t, ...@@ -1636,7 +1636,7 @@ static void btf_enum_seq_show(const struct btf *btf, const struct btf_type *t,
for (i = 0; i < nr_enums; i++) { for (i = 0; i < nr_enums; i++) {
if (v == enums[i].val) { if (v == enums[i].val) {
seq_printf(m, "%s", seq_printf(m, "%s",
btf_name_by_offset(btf, enums[i].name)); btf_name_by_offset(btf, enums[i].name_off));
return; return;
} }
} }
...@@ -1687,9 +1687,9 @@ static s32 btf_check_meta(struct btf_verifier_env *env, ...@@ -1687,9 +1687,9 @@ static s32 btf_check_meta(struct btf_verifier_env *env,
return -EINVAL; return -EINVAL;
} }
if (!btf_name_offset_valid(env->btf, t->name)) { if (!btf_name_offset_valid(env->btf, t->name_off)) {
btf_verifier_log(env, "[%u] Invalid name_offset:%u", btf_verifier_log(env, "[%u] Invalid name_offset:%u",
env->log_type_id, t->name); env->log_type_id, t->name_off);
return -EINVAL; return -EINVAL;
} }
......
...@@ -6,9 +6,7 @@ ...@@ -6,9 +6,7 @@
#include <linux/types.h> #include <linux/types.h>
#define BTF_MAGIC 0xeB9F #define BTF_MAGIC 0xeB9F
#define BTF_MAGIC_SWAP 0x9FeB
#define BTF_VERSION 1 #define BTF_VERSION 1
#define BTF_FLAGS_COMPR 0x01
struct btf_header { struct btf_header {
__u16 magic; __u16 magic;
...@@ -43,7 +41,7 @@ struct btf_header { ...@@ -43,7 +41,7 @@ struct btf_header {
#define BTF_STR_OFFSET(ref) ((ref) & BTF_MAX_NAME_OFFSET) #define BTF_STR_OFFSET(ref) ((ref) & BTF_MAX_NAME_OFFSET)
struct btf_type { struct btf_type {
__u32 name; __u32 name_off;
/* "info" bits arrangement /* "info" bits arrangement
* bits 0-15: vlen (e.g. # of struct's members) * bits 0-15: vlen (e.g. # of struct's members)
* bits 16-23: unused * bits 16-23: unused
...@@ -105,7 +103,7 @@ struct btf_type { ...@@ -105,7 +103,7 @@ struct btf_type {
* info in "struct btf_type"). * info in "struct btf_type").
*/ */
struct btf_enum { struct btf_enum {
__u32 name; __u32 name_off;
__s32 val; __s32 val;
}; };
...@@ -122,7 +120,7 @@ struct btf_array { ...@@ -122,7 +120,7 @@ struct btf_array {
* "struct btf_type"). * "struct btf_type").
*/ */
struct btf_member { struct btf_member {
__u32 name; __u32 name_off;
__u32 type; __u32 type;
__u32 offset; /* offset in bits */ __u32 offset; /* offset in bits */
}; };
......
...@@ -281,7 +281,7 @@ int32_t btf__find_by_name(const struct btf *btf, const char *type_name) ...@@ -281,7 +281,7 @@ int32_t btf__find_by_name(const struct btf *btf, const char *type_name)
for (i = 1; i <= btf->nr_types; i++) { for (i = 1; i <= btf->nr_types; i++) {
const struct btf_type *t = btf->types[i]; const struct btf_type *t = btf->types[i];
const char *name = btf_name_by_offset(btf, t->name); const char *name = btf_name_by_offset(btf, t->name_off);
if (name && !strcmp(type_name, name)) if (name && !strcmp(type_name, name))
return i; return i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment