diff --git a/src/file_utils.cpp b/src/file_utils.cpp index 4c5dcbb6..9e3606d8 100644 --- a/src/file_utils.cpp +++ b/src/file_utils.cpp @@ -33,34 +33,6 @@ std::string get_basename(const std::string&& path) } #ifdef __linux__ - -bool find_folder(const char* root, const char* prefix, std::string& dest) -{ - struct dirent* dp; - DIR* dirp = opendir(root); - if (!dirp) { - SPDLOG_ERROR("Error opening directory '{}': {}", root, strerror(errno)); - return false; - } - - // XXX xfs/jfs need stat() for inode type - while ((dp = readdir(dirp))) { - if ((dp->d_type == DT_LNK || dp->d_type == DT_DIR) && starts_with(dp->d_name, prefix)) { - dest = dp->d_name; - closedir(dirp); - return true; - } - } - - closedir(dirp); - return false; -} - -bool find_folder(const std::string& root, const std::string& prefix, std::string& dest) -{ - return find_folder(root.c_str(), prefix.c_str(), dest); -} - std::vector ls(const char* root, const char* prefix, LS_FLAGS flags) { std::vector list; diff --git a/src/file_utils.h b/src/file_utils.h index b2103ec4..03b3d8eb 100644 --- a/src/file_utils.h +++ b/src/file_utils.h @@ -12,8 +12,6 @@ enum LS_FLAGS }; std::string read_line(const std::string& filename); -bool find_folder(const char* root, const char* prefix, std::string& dest); -bool find_folder(const std::string& root, const std::string& prefix, std::string& dest); std::vector ls(const char* root, const char* prefix = nullptr, LS_FLAGS flags = LS_DIRS); bool file_exists(const std::string& path); bool dir_exists(const std::string& path); diff --git a/src/file_utils_win32.cpp b/src/file_utils_win32.cpp index a37a8c14..15e9aac0 100644 --- a/src/file_utils_win32.cpp +++ b/src/file_utils_win32.cpp @@ -3,16 +3,6 @@ #include #include -bool find_folder(const char* root, const char* prefix, std::string& dest) -{ - return false; -} - -bool find_folder(const std::string& root, const std::string& prefix, std::string& dest) -{ - return find_folder(root.c_str(), prefix.c_str(), dest); -} - std::vector ls(const char* root, const char* prefix, LS_FLAGS flags) { std::vector list; diff --git a/src/overlay.cpp b/src/overlay.cpp index 03b12919..0eddd540 100644 --- a/src/overlay.cpp +++ b/src/overlay.cpp @@ -647,20 +647,20 @@ void init_gpu_stats(uint32_t& vendorID, uint32_t reported_deviceID, overlay_para amdgpu.vram_used = fopen((path + "/mem_info_vram_used").c_str(), "r"); path += "/hwmon/"; - string tempFolder; - if (find_folder(path, "hwmon", tempFolder)) { + auto dirs = ls(path.c_str(), "hwmon", LS_DIRS); + for (auto& dir : dirs) { if (!amdgpu.core_clock) - amdgpu.core_clock = fopen((path + tempFolder + "/freq1_input").c_str(), "r"); + amdgpu.core_clock = fopen((path + dir + "/freq1_input").c_str(), "r"); if (!amdgpu.memory_clock) - amdgpu.memory_clock = fopen((path + tempFolder + "/freq2_input").c_str(), "r"); + amdgpu.memory_clock = fopen((path + dir + "/freq2_input").c_str(), "r"); if (!amdgpu.temp) - amdgpu.temp = fopen((path + tempFolder + "/temp1_input").c_str(), "r"); + amdgpu.temp = fopen((path + dir + "/temp1_input").c_str(), "r"); if (!amdgpu.power_usage) - amdgpu.power_usage = fopen((path + tempFolder + "/power1_average").c_str(), "r"); + amdgpu.power_usage = fopen((path + dir + "/power1_average").c_str(), "r"); vendorID = 0x1002; - break; } + break; } // don't bother then