root/tools/perf/util/symbol_conf.h
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PERF_SYMBOL_CONF
#define __PERF_SYMBOL_CONF 1

#include <stdbool.h>
#include <linux/bitmap.h>
#include "perf.h"

struct strlist;
struct intlist;

enum a2l_style {
        A2L_STYLE_UNKNOWN = 0,
        A2L_STYLE_LIBDW,
        A2L_STYLE_LLVM,
        A2L_STYLE_LIBBFD,
        A2L_STYLE_CMD,
};
#define MAX_A2L_STYLE (A2L_STYLE_CMD + 1)

struct symbol_conf {
        bool            nanosecs;
        unsigned short  priv_size;
        bool            try_vmlinux_path,
                        init_annotation,
                        force,
                        ignore_vmlinux,
                        ignore_vmlinux_buildid,
                        show_kernel_path,
                        use_modules,
                        allow_aliases,
                        show_nr_samples,
                        show_total_period,
                        use_callchain,
                        cumulate_callchain,
                        show_branchflag_count,
                        exclude_other,
                        show_cpu_utilization,
                        initialized,
                        kptr_restrict,
                        event_group,
                        demangle,
                        demangle_kernel,
                        filter_relative,
                        show_hist_headers,
                        has_filter,
                        show_ref_callgraph,
                        hide_unresolved,
                        raw_trace,
                        report_hierarchy,
                        report_block,
                        report_individual_block,
                        inline_name,
                        disable_add2line_warn,
                        no_buildid_mmap2,
                        guest_code,
                        lazy_load_kernel_maps,
                        keep_exited_threads,
                        annotate_data_member,
                        annotate_data_sample,
                        skip_empty,
                        enable_latency,
                        prefer_latency;
        const char      *vmlinux_name,
                        *kallsyms_name,
                        *source_prefix,
                        *field_sep,
                        *graph_function;
        const char      *default_guest_vmlinux_name,
                        *default_guest_kallsyms,
                        *default_guest_modules;
        const char      *guestmount;
        const char      *dso_list_str,
                        *comm_list_str,
                        *pid_list_str,
                        *tid_list_str,
                        *sym_list_str,
                        *parallelism_list_str,
                        *col_width_list_str,
                        *bt_stop_list_str;
        const char              *addr2line_path;
        enum a2l_style  addr2line_style[MAX_A2L_STYLE];
        unsigned long   time_quantum;
       struct strlist   *dso_list,
                        *comm_list,
                        *sym_list,
                        *dso_from_list,
                        *dso_to_list,
                        *sym_from_list,
                        *sym_to_list,
                        *bt_stop_list;
        struct intlist  *pid_list,
                        *tid_list,
                        *addr_list;
        const char      *symfs;
        int             res_sample;
        int             pad_output_len_dso;
        int             group_sort_idx;
        int             addr_range;
        DECLARE_BITMAP(parallelism_filter, MAX_NR_CPUS + 1);
};

extern struct symbol_conf symbol_conf;

#endif // __PERF_SYMBOL_CONF