xref: /openbmc/phosphor-hwmon/sysfs.hpp (revision a9b5f05ba00cc61f3d9f849c87e7644f3224037d)
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