162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 262306a36Sopenharmony_ci/* Copyright (C) 2018 Netronome Systems, Inc. */ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#ifndef __BPF_TOOL_XLATED_DUMPER_H 562306a36Sopenharmony_ci#define __BPF_TOOL_XLATED_DUMPER_H 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#define SYM_MAX_NAME 256 862306a36Sopenharmony_ci#define MODULE_MAX_NAME 64 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cistruct bpf_prog_linfo; 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cistruct kernel_sym { 1362306a36Sopenharmony_ci unsigned long address; 1462306a36Sopenharmony_ci char name[SYM_MAX_NAME]; 1562306a36Sopenharmony_ci char module[MODULE_MAX_NAME]; 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cistruct dump_data { 1962306a36Sopenharmony_ci unsigned long address_call_base; 2062306a36Sopenharmony_ci struct kernel_sym *sym_mapping; 2162306a36Sopenharmony_ci __u32 sym_count; 2262306a36Sopenharmony_ci __u64 *jited_ksyms; 2362306a36Sopenharmony_ci __u32 nr_jited_ksyms; 2462306a36Sopenharmony_ci struct btf *btf; 2562306a36Sopenharmony_ci void *func_info; 2662306a36Sopenharmony_ci __u32 finfo_rec_size; 2762306a36Sopenharmony_ci const struct bpf_prog_linfo *prog_linfo; 2862306a36Sopenharmony_ci char scratch_buff[SYM_MAX_NAME + 8]; 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_civoid kernel_syms_load(struct dump_data *dd); 3262306a36Sopenharmony_civoid kernel_syms_destroy(struct dump_data *dd); 3362306a36Sopenharmony_cistruct kernel_sym *kernel_syms_search(struct dump_data *dd, unsigned long key); 3462306a36Sopenharmony_civoid dump_xlated_json(struct dump_data *dd, void *buf, unsigned int len, 3562306a36Sopenharmony_ci bool opcodes, bool linum); 3662306a36Sopenharmony_civoid dump_xlated_plain(struct dump_data *dd, void *buf, unsigned int len, 3762306a36Sopenharmony_ci bool opcodes, bool linum); 3862306a36Sopenharmony_civoid dump_xlated_for_graph(struct dump_data *dd, void *buf, void *buf_end, 3962306a36Sopenharmony_ci unsigned int start_index, 4062306a36Sopenharmony_ci bool opcodes, bool linum); 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#endif 43