aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov (VMware) <y.karadz@gmail.com>2022-01-19 14:02:28 +0200
committerYordan Karadzhov (VMware) <y.karadz@gmail.com>2022-02-11 14:23:48 +0200
commit59b5763c7c52b703e3b8e05be801f7c85365c9d3 (patch)
treecce3a0de26adaf3d981bf6997947481d9c286b9f
parent5419186f4bbad68aa16849882a8f12fa9adb22c5 (diff)
downloadkernel-shark-59b5763c7c52b703e3b8e05be801f7c85365c9d3.tar.gz
kernel-shark: Add KsPluginsGUI.hpp/.cpp
Here we will place all GUI-related APIs that will be exposed to the external plugins. For the moment we add only two such APIs that will allow the plugins to manipulate the markers. Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
-rw-r--r--src/CMakeLists.txt5
-rw-r--r--src/KsPluginsGUI.cpp27
-rw-r--r--src/KsPluginsGUI.hpp22
3 files changed, 54 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fbf38191..0ee62c88 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -105,6 +105,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND AND TT_FONT_FILE)
KsTraceGraph.cpp
KsTraceViewer.cpp
KsMainWindow.cpp
+ KsPluginsGUI.cpp
KsCaptureDialog.cpp
KsQuickContextMenu.cpp
KsAdvFilteringDialog.cpp)
@@ -147,6 +148,10 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND AND TT_FONT_FILE)
DESTINATION ${_INSTALL_PREFIX}/bin/
COMPONENT kernelshark)
+ install(FILES "${KS_DIR}/src/KsPluginsGUI.hpp"
+ DESTINATION ${KS_INCLUDS_DESTINATION}
+ COMPONENT libkshark-devel)
+
add_subdirectory(plugins)
set(PLUGINS ${PLUGINS} PARENT_SCOPE)
diff --git a/src/KsPluginsGUI.cpp b/src/KsPluginsGUI.cpp
new file mode 100644
index 00000000..a964510e
--- /dev/null
+++ b/src/KsPluginsGUI.cpp
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: LGPL-2.1
+
+/*
+ * Copyright 2022 VMware Inc, Yordan Karadzhov (VMware) <y.karadz@gmail.com>
+ */
+
+/**
+ * @file KsPluginsGUI.cpp
+ * @brief KernelShark C++ plugin declarations.
+ */
+
+// KernelShark
+#include "KsPluginsGUI.hpp"
+#include "KsMainWindow.hpp"
+#include "KsDualMarker.hpp"
+
+void markEntryA(void *ks_ptr, const kshark_entry *e)
+{
+ KsMainWindow *ks = static_cast<KsMainWindow *>(ks_ptr);
+ ks->markEntry(e, DualMarkerState::A);
+}
+
+void markEntryB(void *ks_ptr, const kshark_entry *e)
+{
+ KsMainWindow *ks = static_cast<KsMainWindow *>(ks_ptr);
+ ks->markEntry(e, DualMarkerState::B);
+}
diff --git a/src/KsPluginsGUI.hpp b/src/KsPluginsGUI.hpp
new file mode 100644
index 00000000..808a9513
--- /dev/null
+++ b/src/KsPluginsGUI.hpp
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: LGPL-2.1 */
+
+/*
+ * Copyright 2022 VMware Inc, Yordan Karadzhov <y.karadz@gmail.com>
+ */
+
+/**
+ * @file KsPluginsGUI.hpp
+ * @brief KernelShark C++ plugin declarations.
+ */
+
+#ifndef _KS_PLUGINS_GUI_H
+#define _KS_PLUGINS_GUI_H
+
+// KernelShark
+#include "libkshark.h"
+
+void markEntryA(void *ks_ptr, const kshark_entry *e);
+
+void markEntryB(void *ks_ptr, const kshark_entry *e);
+
+#endif