1 #pragma once 2 3 #include <fstream> 4 #include <string> 5 6 template <typename T> 7 void read_sysfs(const std::string& path, T& val) 8 { 9 std::ifstream s(path); 10 s >> val; 11 } 12 13 template <typename T> 14 void write_sysfs(const std::string& path, const T& val) 15 { 16 std::ofstream s(path); 17 s << val; 18 } 19 20 inline std::string make_sysfs_path(const std::string& path, 21 const std::string& type, 22 const std::string& id, 23 const std::string& entry) 24 { 25 using namespace std::literals; 26 27 return path + "/"s + type + id + "_"s + entry; 28 } 29 30 31 /** @brief Find hwmon instances 32 * 33 * Look for a matching hwmon instance given an 34 * open firmware device path. 35 * 36 * @param[in] ofNode- The open firmware device path. 37 * 38 * @returns[in] - The hwmon instance path or an empty 39 * string if no match is found. 40 */ 41 std::string findHwmon(const std::string& ofNode); 42 43 // vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 44