diff options
author | Yordan Karadzhov <ykaradzhov@vmware.com> | 2019-03-13 17:07:14 +0200 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-03-22 15:14:11 -0400 |
commit | f053ff6ae15343d3d8950f4ef66f7221b6170514 (patch) | |
tree | d8706660546062b33d87bbc8ec6cf3d24e915a1d | |
parent | 0f03474a17ac401fdd3c7d35ec7f111160dd4e9b (diff) | |
download | trace-cmd-f053ff6ae15343d3d8950f4ef66f7221b6170514.tar.gz |
kernel-shark: Define addPlugins method for KsPluginManager
The method can be used to register and load user-defined plugins.
All other previously loaded plugins will be reinitialized and the
data will be reloaded.
Link: http://lore.kernel.org/linux-trace-devel/20190313150717.21345-2-ykaradzhov@vmware.com
Reviewed-by: Slavomir Kaslev <kaslevs@vmware.com>
Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | kernel-shark/src/KsUtils.cpp | 23 | ||||
-rw-r--r-- | kernel-shark/src/KsUtils.hpp | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/kernel-shark/src/KsUtils.cpp b/kernel-shark/src/KsUtils.cpp index 34b2e2d8..b934ce3d 100644 --- a/kernel-shark/src/KsUtils.cpp +++ b/kernel-shark/src/KsUtils.cpp @@ -596,6 +596,29 @@ void KsPluginManager::unregisterPlugin(const QString &plugin) } } +/** @brief Add to the list and initialize user-provided plugins. All other + * previously loaded plugins will be reinitialized and the data will be + * reloaded. + * + * @param fileNames: the library files (.so) of the plugins. +*/ +void KsPluginManager::addPlugins(const QStringList &fileNames) +{ + kshark_context *kshark_ctx(nullptr); + + if (!kshark_instance(&kshark_ctx)) + return; + + kshark_handle_plugins(kshark_ctx, KSHARK_PLUGIN_CLOSE); + + for (auto const &p: fileNames) + registerPlugin(p); + + kshark_handle_plugins(kshark_ctx, KSHARK_PLUGIN_INIT); + + emit dataReload(); +} + /** Unload all plugins. */ void KsPluginManager::unloadAll() { diff --git a/kernel-shark/src/KsUtils.hpp b/kernel-shark/src/KsUtils.hpp index cb95b4ff..c8b5e880 100644 --- a/kernel-shark/src/KsUtils.hpp +++ b/kernel-shark/src/KsUtils.hpp @@ -210,6 +210,9 @@ public: void registerPlugin(const QString &plugin); void unregisterPlugin(const QString &plugin); + + void addPlugins(const QStringList &fileNames); + void unloadAll(); void updatePlugins(QVector<int> pluginId); |