From e4283f6d48b98e764b988b43bbc86b9d52e6ec94 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:54:43 +0200 Subject: Adding upstream version 43.9. Signed-off-by: Daniel Baumann --- src/shell-perf-log.h | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/shell-perf-log.h (limited to 'src/shell-perf-log.h') diff --git a/src/shell-perf-log.h b/src/shell-perf-log.h new file mode 100644 index 0000000..45d07a5 --- /dev/null +++ b/src/shell-perf-log.h @@ -0,0 +1,75 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#ifndef __SHELL_PERF_LOG_H__ +#define __SHELL_PERF_LOG_H__ + +#include +#include + +G_BEGIN_DECLS + +#define SHELL_TYPE_PERF_LOG (shell_perf_log_get_type ()) +G_DECLARE_FINAL_TYPE (ShellPerfLog, shell_perf_log, SHELL, PERF_LOG, GObject) + +ShellPerfLog *shell_perf_log_get_default (void); + +void shell_perf_log_set_enabled (ShellPerfLog *perf_log, + gboolean enabled); + +void shell_perf_log_define_event (ShellPerfLog *perf_log, + const char *name, + const char *description, + const char *signature); +void shell_perf_log_event (ShellPerfLog *perf_log, + const char *name); +void shell_perf_log_event_i (ShellPerfLog *perf_log, + const char *name, + gint32 arg); +void shell_perf_log_event_x (ShellPerfLog *perf_log, + const char *name, + gint64 arg); +void shell_perf_log_event_s (ShellPerfLog *perf_log, + const char *name, + const char *arg); + +void shell_perf_log_define_statistic (ShellPerfLog *perf_log, + const char *name, + const char *description, + const char *signature); + +void shell_perf_log_update_statistic_i (ShellPerfLog *perf_log, + const char *name, + int value); +void shell_perf_log_update_statistic_x (ShellPerfLog *perf_log, + const char *name, + gint64 value); + +typedef void (*ShellPerfStatisticsCallback) (ShellPerfLog *perf_log, + gpointer data); + +void shell_perf_log_add_statistics_callback (ShellPerfLog *perf_log, + ShellPerfStatisticsCallback callback, + gpointer user_data, + GDestroyNotify notify); + +void shell_perf_log_collect_statistics (ShellPerfLog *perf_log); + +typedef void (*ShellPerfReplayFunction) (gint64 time, + const char *name, + const char *signature, + GValue *arg, + gpointer user_data); + +void shell_perf_log_replay (ShellPerfLog *perf_log, + ShellPerfReplayFunction replay_function, + gpointer user_data); + +gboolean shell_perf_log_dump_events (ShellPerfLog *perf_log, + GOutputStream *out, + GError **error); +gboolean shell_perf_log_dump_log (ShellPerfLog *perf_log, + GOutputStream *out, + GError **error); + +G_END_DECLS + +#endif /* __SHELL_PERF_LOG_H__ */ -- cgit v1.2.3