[PATCH RFC][makedumpfile 05/10] Export necessary btf/kallsyms functions to eppic extension

Tao Liu ltao at redhat.com
Tue Jun 10 02:57:38 PDT 2025


Signed-off-by: Tao Liu <ltao at redhat.com>
---
 erase_info.c | 16 +++++++++++++++-
 erase_info.h | 14 ++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/erase_info.c b/erase_info.c
index d68e1a2..9ec1813 100644
--- a/erase_info.c
+++ b/erase_info.c
@@ -20,6 +20,8 @@
 #include "print_info.h"
 #include "dwarf_info.h"
 #include "erase_info.h"
+#include "kallsyms.h"
+#include "btf.h"
 
 #include <dlfcn.h>
 
@@ -36,7 +38,19 @@ struct call_back eppic_cb = {
 	&get_die_member_all,
 	&get_die_nfields_all,
 	&get_symbol_addr_all,
-	&update_filter_info_raw
+	&update_filter_info_raw,
+	&get_structure_size,
+	&get_member_offset,
+	/**********************/
+	&update_filter_pages_info,
+	&get_kallsyms_value_by_name,
+	&get_struct_member_by_name,
+	&get_type_member_by_index,
+	&get_type_size_by_name,
+	&get_en_by_uniq_id,
+	&resolve_typedef,
+	&get_btf_type_by_type_id,
+	&id_to_uniq_id,
 };
 
 
diff --git a/erase_info.h b/erase_info.h
index 4552dfc..6797ed1 100644
--- a/erase_info.h
+++ b/erase_info.h
@@ -19,6 +19,7 @@
 #ifndef _ERASE_INFO_H
 #define _ERASE_INFO_H
 
+#include "btf.h"
 #define MAX_SIZE_STR_LEN (26)
 
 /*
@@ -52,6 +53,19 @@ struct call_back {
 	int (*get_die_nfields_all)(unsigned long long die_off);
 	unsigned long long (*get_symbol_addr_all)(char *symname);
 	int (*update_filter_info_raw)(unsigned long long, int, int);
+	long (*get_structure_size)(char *, int);
+	long (*get_member_offset)(char *, char *, int);
+	/********************************/
+	int (*update_filter_pages_info)(unsigned long, unsigned long);
+	uint64_t (*get_kallsyms_value_by_name)(char *);
+	uint32_t (*get_struct_member_by_name)(char *, char *, struct member_info *);
+	bool (*get_type_member_by_index)(uint64_t, int, struct member_info *);
+	uint32_t (*get_type_size_by_name)(char *, int, uint32_t *);
+	struct name_entry *(*get_en_by_uniq_id)(uint32_t, struct btf_type *);
+	void (*resolve_typedef)(struct name_entry *, struct name_entry **, struct btf_type *);
+	int (*get_btf_type_by_type_id)(struct btf_file *, uint32_t,
+				   struct btf_type *, struct name_entry **);
+	uint32_t (*id_to_uniq_id)(uint32_t, struct btf_file *);
 };
 
 extern struct erase_info	*erase_info;
-- 
2.47.0




More information about the kexec mailing list