^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef __PERF_SVGHELPER_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __PERF_SVGHELPER_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) struct perf_env;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) void svg_ubox(int Yslot, u64 start, u64 end, double height, const char *type, int fd, int err, int merges);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) void svg_lbox(int Yslot, u64 start, u64 end, double height, const char *type, int fd, int err, int merges);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) void svg_fbox(int Yslot, u64 start, u64 end, double height, const char *type, int fd, int err, int merges);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) void svg_box(int Yslot, u64 start, u64 end, const char *type);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) void svg_blocked(int Yslot, int cpu, u64 start, u64 end, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) void svg_running(int Yslot, int cpu, u64 start, u64 end, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) void svg_waiting(int Yslot, int cpu, u64 start, u64 end, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) void svg_cpu_box(int cpu, u64 max_frequency, u64 turbo_frequency);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) void svg_process(int cpu, u64 start, u64 end, int pid, const char *name, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) void svg_cstate(int cpu, u64 start, u64 end, int type);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) void svg_pstate(int cpu, u64 start, u64 end, u64 freq);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) void svg_time_grid(double min_thickness);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) void svg_io_legenda(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) void svg_legenda(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) void svg_wakeline(u64 start, int row1, int row2, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) void svg_partial_wakeline(u64 start, int row1, char *desc1, int row2, char *desc2, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) void svg_interrupt(u64 start, int row, const char *backtrace);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) void svg_text(int Yslot, u64 start, const char *text);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) void svg_close(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) int svg_build_topology_map(struct perf_env *env);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) extern int svg_page_width;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) extern u64 svg_highlight;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) extern const char *svg_highlight_name;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #endif /* __PERF_SVGHELPER_H */