^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) // Copyright (C) 2019, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #ifndef __PERF_EVSWITCH_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #define __PERF_EVSWITCH_H 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <stdbool.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <stdio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) struct evsel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct evlist;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct evswitch {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct evsel *on, *off;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) const char *on_name, *off_name;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) bool discarding;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) bool show_on_off_events;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) int evswitch__init(struct evswitch *evswitch, struct evlist *evlist, FILE *fp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) bool evswitch__discard(struct evswitch *evswitch, struct evsel *evsel);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define OPTS_EVSWITCH(evswitch) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) OPT_STRING(0, "switch-on", &(evswitch)->on_name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) "event", "Consider events after the ocurrence of this event"), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) OPT_STRING(0, "switch-off", &(evswitch)->off_name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) "event", "Stop considering events after the ocurrence of this event"), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) OPT_BOOLEAN(0, "show-on-off-events", &(evswitch)->show_on_off_events, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) "Show the on/off switch events, used with --switch-on and --switch-off")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #endif /* __PERF_EVSWITCH_H */