diff options
Diffstat (limited to 'include/linux/btf.h')
| -rw-r--r-- | include/linux/btf.h | 33 | 
1 files changed, 33 insertions, 0 deletions
diff --git a/include/linux/btf.h b/include/linux/btf.h index 64cdf2a23d42..79d4abc2556a 100644 --- a/include/linux/btf.h +++ b/include/linux/btf.h @@ -5,6 +5,7 @@  #define _LINUX_BTF_H 1  #include <linux/types.h> +#include <uapi/linux/btf.h>  struct btf;  struct btf_member; @@ -53,9 +54,41 @@ bool btf_member_is_reg_int(const struct btf *btf, const struct btf_type *s,  int btf_find_spin_lock(const struct btf *btf, const struct btf_type *t);  bool btf_type_is_void(const struct btf_type *t); +static inline bool btf_type_is_ptr(const struct btf_type *t) +{ +	return BTF_INFO_KIND(t->info) == BTF_KIND_PTR; +} + +static inline bool btf_type_is_int(const struct btf_type *t) +{ +	return BTF_INFO_KIND(t->info) == BTF_KIND_INT; +} + +static inline bool btf_type_is_enum(const struct btf_type *t) +{ +	return BTF_INFO_KIND(t->info) == BTF_KIND_ENUM; +} + +static inline bool btf_type_is_typedef(const struct btf_type *t) +{ +	return BTF_INFO_KIND(t->info) == BTF_KIND_TYPEDEF; +} + +static inline bool btf_type_is_func(const struct btf_type *t) +{ +	return BTF_INFO_KIND(t->info) == BTF_KIND_FUNC; +} + +static inline bool btf_type_is_func_proto(const struct btf_type *t) +{ +	return BTF_INFO_KIND(t->info) == BTF_KIND_FUNC_PROTO; +} +  #ifdef CONFIG_BPF_SYSCALL  const struct btf_type *btf_type_by_id(const struct btf *btf, u32 type_id);  const char *btf_name_by_offset(const struct btf *btf, u32 offset); +struct btf *btf_parse_vmlinux(void); +struct btf *bpf_prog_get_target_btf(const struct bpf_prog *prog);  #else  static inline const struct btf_type *btf_type_by_id(const struct btf *btf,  						    u32 type_id)  |