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