forked from Minki/linux
92b57121ca
This patch introduces btf__resolve_type() function and exports two existing functions from libbpf. btf__resolve_type follows modifier types like const and typedef until it hits a type which actually takes up memory, and then returns it. This function follows similar pattern to btf__resolve_size but instead of computing size, it just returns the type. These functions will be used in the followig patch which parses information inside array of `struct btf_type *`. btf_name_by_offset is used for printing variable names. Signed-off-by: Okash Khawaja <osk@fb.com> Acked-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Song Liu <songliubraving@fb.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
26 lines
770 B
C
26 lines
770 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2018 Facebook */
|
|
|
|
#ifndef __BPF_BTF_H
|
|
#define __BPF_BTF_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#define BTF_ELF_SEC ".BTF"
|
|
|
|
struct btf;
|
|
|
|
typedef int (*btf_print_fn_t)(const char *, ...)
|
|
__attribute__((format(printf, 1, 2)));
|
|
|
|
void btf__free(struct btf *btf);
|
|
struct btf *btf__new(uint8_t *data, uint32_t size, btf_print_fn_t err_log);
|
|
int32_t btf__find_by_name(const struct btf *btf, const char *type_name);
|
|
int64_t btf__resolve_size(const struct btf *btf, uint32_t type_id);
|
|
int btf__resolve_type(const struct btf *btf, __u32 type_id);
|
|
int btf__fd(const struct btf *btf);
|
|
const char *btf__name_by_offset(const struct btf *btf, __u32 offset);
|
|
const struct btf_type *btf__type_by_id(const struct btf *btf, __u32 type_id);
|
|
|
|
#endif
|