Files
BPI-M2C/source_sync_rls_25c/source/unisoc/modules/thermal/ThermalXmlParser.h
T
2026-09-22 09:38:26 +08:00

74 lines
2.7 KiB
C++

/*
* ThermalXmlParser.h
*
* Copyright (C) 2016 Spreadtrum Communications Inc.
*/
#ifndef THERMALXMLPARSER_H_
#define THERMALXMLPARSER_H_
#include <deque>
#include "tinyxml2.h"
namespace android {
class ThermalSensor;
class ThermalZoneLevel;
class ThermalTrip;
class ThermalXmlParser {
public:
ThermalXmlParser();
~ThermalXmlParser();
std::deque<ThermalSensor*>& initSensorsFromXml(void);
private:
bool matchChipInfo(int id, int mask, const char* chip_file);
ThermalSensor* getSensorArgs(tinyxml2::XMLElement* pSensorChild);
ThermalZoneLevel* getZoneLevelArgs(tinyxml2::XMLElement* pLevelNode);
ThermalTrip* getTripArgs(tinyxml2::XMLElement* pActionNode);
int matchBinInfo(tinyxml2::XMLElement* pLevelNode, ThermalSensor* pSensor,
int levelId);
bool binIsMatched(int value, int block, int mask, const char* file);
int searchSensor(tinyxml2::XMLElement* element, ThermalSensor* pSensor,
const char* type);
int matchSensorFile(ThermalSensor* pSensor, const char* type, bool isBackup);
bool isTempValid(const char* tempPath);
int matchActionFile(std::string& file, std::string name);
const char* CONFIG_FILE_PATH = "/etc/thermalSensorsConfig.xml";
const char* CONFIG_DEBUG_FILE_PATH = "/home/root/thermalSensorsConfig.xml";
const char* CONFIG_FILE_SENSOR_PATH = "/sys/class/thermal";
const char* CONFIG_CHIP_INFO = "chip_info";
const char* CONFIG_SENSOR = "sensor";
const char* CONFIG_CHIPID = "chip_id";
const char* CONFIG_SENSOR_TYPE = "sensor_type";
const char* CONFIG_BACKUP_SENSOR = "backup_sensor";
const char* CONFIG_SENSOR_NAME = "sensor_name";
const char* CONFIG_SENSOR_FILE = "sensor_file";
const char* CONFIG_SENSOR_POLLING_DELAY = "polling_delay";
const char* CONFIG_SENSOR_AVG_PERIOD = "AvgPeriod";
const char* CONFIG_SENSOR_DRO_PERIOD = "DroPeriod";
const char* CONFIG_ZONE_LEVEL = "zone_level";
const char* CONFIG_BINNING = "binning";
const char* CONFIG_TEMP = "temp";
const char* CONFIG_HYST_TEMP = "hyst_temp";
const char* CONFIG_TRIP = "trip";
const char* CONFIG_ACTION = "action";
const char* CONFIG_BIN = "bin";
const char* CONFIG_LIMIT_TRIP = "limit_trip";
const char* CONFIG_INIT_TRIP = "init_trip";
const char* CONFIG_PERF_TRIP = "perf_trip";
const char* CONFIG_ACTION_NAME = "name";
const char* CONFIG_ACTION_ARG = "arg";
const char* CONFIG_ACTION_FILE = "file";
const char* CPU_TYPE0 = "soc-thmzone";
const char* CPU_TYPE1 = "cpu-thmzone";
const char* COOLING_TYPE0 = "thermal-cpu-0";
const char* COOLING_TYPE1 = "thermal-cpu-1";
const char* COOLING_TYPE2 = "thermal-cpu-2";
std::deque<ThermalSensor*> mSensorDeque;
};
}; // namespace android
#endif // THERMALXMLPARSER_H_