1afc7c944SJakub Kicinski /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 202ff58dcSJakub Kicinski /* Copyright (C) 2018 Netronome Systems, Inc. */ 373bb5b4fSJiong Wang 473bb5b4fSJiong Wang #ifndef __BPF_TOOL_XLATED_DUMPER_H 573bb5b4fSJiong Wang #define __BPF_TOOL_XLATED_DUMPER_H 673bb5b4fSJiong Wang 773bb5b4fSJiong Wang #define SYM_MAX_NAME 256 8*dc651944SYafang Shao #define MODULE_MAX_NAME 64 973bb5b4fSJiong Wang 10b053b439SMartin KaFai Lau struct bpf_prog_linfo; 11b053b439SMartin KaFai Lau 1273bb5b4fSJiong Wang struct kernel_sym { 1373bb5b4fSJiong Wang unsigned long address; 1473bb5b4fSJiong Wang char name[SYM_MAX_NAME]; 15*dc651944SYafang Shao char module[MODULE_MAX_NAME]; 1673bb5b4fSJiong Wang }; 1773bb5b4fSJiong Wang 1873bb5b4fSJiong Wang struct dump_data { 1973bb5b4fSJiong Wang unsigned long address_call_base; 2073bb5b4fSJiong Wang struct kernel_sym *sym_mapping; 2173bb5b4fSJiong Wang __u32 sym_count; 22f84192eeSSandipan Das __u64 *jited_ksyms; 23f84192eeSSandipan Das __u32 nr_jited_ksyms; 24254471e5SYonghong Song struct btf *btf; 25254471e5SYonghong Song void *func_info; 26254471e5SYonghong Song __u32 finfo_rec_size; 27b053b439SMartin KaFai Lau const struct bpf_prog_linfo *prog_linfo; 28d5fc73dcSJakub Kicinski char scratch_buff[SYM_MAX_NAME + 8]; 2973bb5b4fSJiong Wang }; 3073bb5b4fSJiong Wang 3173bb5b4fSJiong Wang void kernel_syms_load(struct dump_data *dd); 3273bb5b4fSJiong Wang void kernel_syms_destroy(struct dump_data *dd); 33f7f62c71SSandipan Das struct kernel_sym *kernel_syms_search(struct dump_data *dd, unsigned long key); 3473bb5b4fSJiong Wang void dump_xlated_json(struct dump_data *dd, void *buf, unsigned int len, 35b053b439SMartin KaFai Lau bool opcodes, bool linum); 3673bb5b4fSJiong Wang void dump_xlated_plain(struct dump_data *dd, void *buf, unsigned int len, 37b053b439SMartin KaFai Lau bool opcodes, bool linum); 38efcef17aSJiong Wang void dump_xlated_for_graph(struct dump_data *dd, void *buf, void *buf_end, 397483a7a7SQuentin Monnet unsigned int start_index, 407483a7a7SQuentin Monnet bool opcodes, bool linum); 4173bb5b4fSJiong Wang 4273bb5b4fSJiong Wang #endif 43