xref: /openbmc/phosphor-hwmon/util.hpp (revision b6865fdcc10dbfd5ff023f3b74d9c8b645d319db)
1ab795a1dSBrad Bishop #pragma once
2ab795a1dSBrad Bishop 
3*9bbe6026SCarol Wang #include "sensorset.hpp"
4*9bbe6026SCarol Wang 
5ab795a1dSBrad Bishop #include <cstdlib>
6ab795a1dSBrad Bishop 
7ab795a1dSBrad Bishop namespace phosphor
8ab795a1dSBrad Bishop {
9ab795a1dSBrad Bishop namespace utility
10ab795a1dSBrad Bishop {
11ab795a1dSBrad Bishop /** @struct Free
12ab795a1dSBrad Bishop  *  @brief A malloc cleanup type for use with smart pointers.
13ab795a1dSBrad Bishop  */
14ab795a1dSBrad Bishop template <typename T>
15ab795a1dSBrad Bishop struct Free
16ab795a1dSBrad Bishop {
operator ()phosphor::utility::Free17ab795a1dSBrad Bishop     void operator()(T* ptr) const
18ab795a1dSBrad Bishop     {
19ab795a1dSBrad Bishop         free(ptr);
20ab795a1dSBrad Bishop     }
21ab795a1dSBrad Bishop };
22*9bbe6026SCarol Wang 
23*9bbe6026SCarol Wang /** @brief Check if AVERAGE_power* is set to be true in env
24*9bbe6026SCarol Wang  *
25*9bbe6026SCarol Wang  *  @param[in] sensor - Sensor details
26*9bbe6026SCarol Wang  *
27*9bbe6026SCarol Wang  *  @return bool - true or false
28*9bbe6026SCarol Wang  */
isAverageEnvSet(const SensorSet::key_type & sensor)29*9bbe6026SCarol Wang inline bool isAverageEnvSet(const SensorSet::key_type& sensor)
30*9bbe6026SCarol Wang {
31*9bbe6026SCarol Wang     return env::getEnv("AVERAGE", sensor.first, sensor.second) == "true";
32*9bbe6026SCarol Wang }
33ab795a1dSBrad Bishop } // namespace utility
34ab795a1dSBrad Bishop } // namespace phosphor
35