#include "occ_device.hpp" #include "occ_status.hpp" #include namespace open_power { namespace occ { fs::path Device::bindPath = fs::path(OCC_HWMON_PATH) / "bind"; fs::path Device::unBindPath = fs::path(OCC_HWMON_PATH) / "unbind"; std::string Device::getPathBack(const fs::path& path) { if (path.empty()) return std::string(); // Points to the last element in the path auto conf = --path.end(); // The last element will be '.' if the path ends in '/' // This behavior differs between filesystem and experimental::filesystem // Verify there is an element before too if (!conf->compare(".") && conf != path.begin()) { return *(--conf); } else { return *conf; } } bool Device::master() const { int master; auto masterFile = devPath / "occ_master"; std::ifstream file(masterFile, std::ios::in); if (!file) { return false; } file >> master; file.close(); return (master != 0); } void Device::throttleProcTempCallback(bool error) { statusObject.throttleProcTemp(error); } void Device::throttleProcPowerCallback(bool error) { statusObject.throttleProcPower(error); } void Device::throttleMemTempCallback(bool error) { statusObject.throttleMemTemp(error); } } // namespace occ } // namespace open_power