diff options
author | Steven Koo <steven.koo@ni.com> | 2020-09-24 13:05:34 -0500 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2020-10-05 12:02:05 -0500 |
commit | 8fea36aa81195d758a29067141afdc4becefe5ae (patch) | |
tree | 4f0d411d872355726b7a88c6632a7646425c2587 /host/lib/types | |
parent | 75fe86a92bfbd037545afdafd2677f390eccefa5 (diff) | |
download | uhd-8fea36aa81195d758a29067141afdc4becefe5ae.tar.gz uhd-8fea36aa81195d758a29067141afdc4becefe5ae.tar.bz2 uhd-8fea36aa81195d758a29067141afdc4becefe5ae.zip |
lib: disable non pcie types in find with resource
mpmd find doesn't respect the "resource" arg hint and can be detected
when "resource" is set. This results in incorrect device selection when
using PCIe. This change adds detection for "resource" as a prefix
in the device hints for mpmd and the other devices.
Diffstat (limited to 'host/lib/types')
-rw-r--r-- | host/lib/types/device_addr.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/host/lib/types/device_addr.cpp b/host/lib/types/device_addr.cpp index d5e9ce0d4..3a7f80ed9 100644 --- a/host/lib/types/device_addr.cpp +++ b/host/lib/types/device_addr.cpp @@ -9,6 +9,7 @@ #include <boost/algorithm/string.hpp> #include <boost/format.hpp> #include <boost/tokenizer.hpp> +#include <algorithm> #include <regex> #include <sstream> #include <stdexcept> @@ -51,6 +52,14 @@ device_addr_t::device_addr_t(const std::map<std::string, std::string>& info) } } +bool device_addr_t::has_key_with_prefix(const std::string& prefix) const +{ + auto dev_keys = this->keys(); + return std::any_of(dev_keys.begin(), dev_keys.end(), [prefix](const auto& key) { + return key.substr(0, prefix.size()) == prefix; + }); +} + std::string device_addr_t::to_pp_string(void) const { if (this->size() == 0) |