aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov <ykaradzhov@vmware.com>2019-03-13 17:07:14 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-03-22 15:14:11 -0400
commitf053ff6ae15343d3d8950f4ef66f7221b6170514 (patch)
treed8706660546062b33d87bbc8ec6cf3d24e915a1d
parent0f03474a17ac401fdd3c7d35ec7f111160dd4e9b (diff)
downloadtrace-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.cpp23
-rw-r--r--kernel-shark/src/KsUtils.hpp3
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);