blob: 4375e1e9cfdeccef91d177555d42b382d6123531 [file] [log] [blame]
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -07001/*
2 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 *
18 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
28 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31#ifndef THERMAL_THERMAL_COMMON_H__
32#define THERMAL_THERMAL_COMMON_H__
33
34#include "thermalData.h"
35
36namespace android {
37namespace hardware {
38namespace thermal {
39namespace V2_0 {
40namespace implementation {
41
42class ThermalCommon {
43 public:
44 ThermalCommon();
45 ~ThermalCommon() = default;
46
47 int readFromFile(std::string_view path, std::string *out);
48 int initThermalZones(std::vector<struct target_therm_cfg> cfg);
49 void initThreshold(struct therm_sensor sens);
50 int initCdev();
51
52 int read_cdev_state(struct therm_cdev *cdev);
53 int read_temperature(struct therm_sensor *sensor);
54 int estimateSeverity(struct therm_sensor *sensor);
Ram Chandrasekar72110b52020-08-06 14:39:40 -070055 int get_cpu_usages(hidl_vec<CpuUsage>& list);
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070056
57 std::vector<struct therm_sensor> fetch_sensor_list()
58 {
59 return sens;
60 };
61 std::vector<struct therm_cdev> fetch_cdev_list()
62 {
63 return cdev;
64 };
65
66 private:
67 int ncpus;
68 std::vector<struct target_therm_cfg> cfg;
69 std::vector<struct therm_sensor> sens;
70 std::vector<struct therm_cdev> cdev;
71
72 int initializeCpuSensor(struct target_therm_cfg cpu_cfg);
73 int initialize_sensor(struct target_therm_cfg cfg,
74 int sens_idx);
75};
76
77} // namespace implementation
78} // namespace V2_0
79} // namespace thermal
80} // namespace hardware
81} // namespace android
82
83#endif // THERMAL_THERMAL_COMMON_H__