libmodprobe: add support to list modules
am: 012cfa19b0
Change-Id: I82ec8054ec1709ff18bd8d43851554a7e1625f40
This commit is contained in:
commit
4a644fa521
2 changed files with 14 additions and 0 deletions
|
|
@ -29,6 +29,7 @@ class Modprobe {
|
|||
bool LoadWithAliases(const std::string& module_name, bool strict,
|
||||
const std::string& parameters = "");
|
||||
bool Remove(const std::string& module_name);
|
||||
std::vector<std::string> ListModules(const std::string& pattern);
|
||||
void EnableBlacklist(bool enable);
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -363,3 +363,16 @@ bool Modprobe::Remove(const std::string& module_name) {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<std::string> Modprobe::ListModules(const std::string& pattern) {
|
||||
std::vector<std::string> rv;
|
||||
for (const auto& [module, deps] : module_deps_) {
|
||||
// Attempt to match both the canonical module name and the module filename.
|
||||
if (!fnmatch(pattern.c_str(), module.c_str(), 0)) {
|
||||
rv.emplace_back(module);
|
||||
} else if (!fnmatch(pattern.c_str(), basename(deps[0].c_str()), 0)) {
|
||||
rv.emplace_back(deps[0]);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue