1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker * Copyright © 2020 Collabora, Ltd.
3*61046927SAndroid Build Coastguard Worker * Author: Antonio Caggiano <[email protected]>
4*61046927SAndroid Build Coastguard Worker *
5*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT
6*61046927SAndroid Build Coastguard Worker */
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Worker #pragma once
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard Worker #include <perfetto.h>
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Worker #define PPS_LOG PERFETTO_LOG
13*61046927SAndroid Build Coastguard Worker #define PPS_LOG_IMPORTANT PERFETTO_ILOG
14*61046927SAndroid Build Coastguard Worker #define PPS_LOG_ERROR PERFETTO_ELOG
15*61046927SAndroid Build Coastguard Worker #define PPS_LOG_FATAL PERFETTO_FATAL
16*61046927SAndroid Build Coastguard Worker
17*61046927SAndroid Build Coastguard Worker namespace pps
18*61046927SAndroid Build Coastguard Worker {
19*61046927SAndroid Build Coastguard Worker enum class State {
20*61046927SAndroid Build Coastguard Worker Stop, // initial state, or stopped by the tracing service
21*61046927SAndroid Build Coastguard Worker Start, // running, sampling data
22*61046927SAndroid Build Coastguard Worker };
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard Worker /// @brief Checks whether a return value is valid
25*61046927SAndroid Build Coastguard Worker /// @param res Result from a syscall
26*61046927SAndroid Build Coastguard Worker /// @param msg Message to prepend to strerror
27*61046927SAndroid Build Coastguard Worker /// @return True if ok, false otherwise
28*61046927SAndroid Build Coastguard Worker bool check(int res, const char *msg);
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard Worker void make_thread_rt();
31*61046927SAndroid Build Coastguard Worker
32*61046927SAndroid Build Coastguard Worker /// @param num Numerator
33*61046927SAndroid Build Coastguard Worker /// @param den Denominator
34*61046927SAndroid Build Coastguard Worker /// @return A ratio between two floating point numbers, or 0 if the denominator is 0
ratio(double num,double den)35*61046927SAndroid Build Coastguard Worker constexpr double ratio(double num, double den)
36*61046927SAndroid Build Coastguard Worker {
37*61046927SAndroid Build Coastguard Worker return den > 0.0 ? num / den : 0.0;
38*61046927SAndroid Build Coastguard Worker }
39*61046927SAndroid Build Coastguard Worker
40*61046927SAndroid Build Coastguard Worker } // namespace pps
41