diff --git a/selfdrive/common/params.cc b/selfdrive/common/params.cc index 6a2a89038e..e7006aba7e 100644 --- a/selfdrive/common/params.cc +++ b/selfdrive/common/params.cc @@ -327,12 +327,12 @@ std::string Params::get(const char *key, bool block) { } } -int Params::readAll(std::map *params) { +std::map Params::readAll() { FileLock file_lock(params_path + "/.lock", LOCK_SH); std::lock_guard lk(file_lock); std::string key_path = params_path + "/d"; - return util::read_files_in_dir(key_path, params); + return util::read_files_in_dir(key_path); } void Params::clearAll(ParamKeyType key_type) { diff --git a/selfdrive/common/params.h b/selfdrive/common/params.h index bc13722955..52aab815f7 100644 --- a/selfdrive/common/params.h +++ b/selfdrive/common/params.h @@ -33,7 +33,7 @@ public: void clearAll(ParamKeyType type); // read all values - int readAll(std::map *params); + std::map readAll(); // helpers for reading values std::string get(const char *key, bool block = false); diff --git a/selfdrive/common/util.cc b/selfdrive/common/util.cc index 78f9e409f9..e6fabc2b95 100644 --- a/selfdrive/common/util.cc +++ b/selfdrive/common/util.cc @@ -76,19 +76,20 @@ std::string read_file(const std::string& fn) { return std::string(); } -int read_files_in_dir(const std::string &path, std::map *contents) { +std::map read_files_in_dir(const std::string &path) { + std::map ret; DIR *d = opendir(path.c_str()); - if (!d) return -1; + if (!d) return ret; struct dirent *de = NULL; while ((de = readdir(d))) { if (isalnum(de->d_name[0])) { - (*contents)[de->d_name] = util::read_file(path + "/" + de->d_name); + ret[de->d_name] = util::read_file(path + "/" + de->d_name); } } closedir(d); - return 0; + return ret; } int write_file(const char* path, const void* data, size_t size, int flags, mode_t mode) { diff --git a/selfdrive/common/util.h b/selfdrive/common/util.h index 460fb8f5c0..1637a8380a 100644 --- a/selfdrive/common/util.h +++ b/selfdrive/common/util.h @@ -62,7 +62,7 @@ bool is_valid_dongle_id(std::string const& dongle_id); // **** file fhelpers ***** std::string read_file(const std::string& fn); -int read_files_in_dir(const std::string& path, std::map* contents); +std::map read_files_in_dir(const std::string& path); int write_file(const char* path, const void* data, size_t size, int flags = O_WRONLY, mode_t mode = 0777); std::string readlink(const std::string& path); bool file_exists(const std::string& fn); diff --git a/selfdrive/loggerd/bootlog.cc b/selfdrive/loggerd/bootlog.cc index 86c4473af5..35508730fd 100644 --- a/selfdrive/loggerd/bootlog.cc +++ b/selfdrive/loggerd/bootlog.cc @@ -12,8 +12,7 @@ static kj::Array build_boot_log() { boot.setWallTimeNanos(nanos_since_epoch()); std::string pstore = "/sys/fs/pstore"; - std::map pstore_map; - util::read_files_in_dir(pstore, &pstore_map); + std::map pstore_map = util::read_files_in_dir(pstore); const std::vector log_keywords = {"Kernel panic"}; auto lpstore = boot.initPstore().initEntries(pstore_map.size()); diff --git a/selfdrive/loggerd/logger.cc b/selfdrive/loggerd/logger.cc index 6436b960b8..8651530b47 100644 --- a/selfdrive/loggerd/logger.cc +++ b/selfdrive/loggerd/logger.cc @@ -101,8 +101,7 @@ kj::Array logger_build_init_data() { init.setPassive(params.getBool("Passive")); init.setDongleId(params.get("DongleId")); { - std::map params_map; - params.readAll(¶ms_map); + std::map params_map = params.readAll(); auto lparams = init.initParams().initEntries(params_map.size()); int i = 0; for (auto& kv : params_map) {