On 22.12.21 г. 8:40 ч., Hongzhan Chen wrote:
1. To avoid code duplication, move some common APIs and definitions out to create new files and share with other plugins. 2. add new plugin for handling xenomai cobalt_switch_context events to visualize OOB state of RT tasks. I tried to move common APIs and definitions to KsPlugins.cpp/hpp but found these definitions finally depend on KsMainWindow object used by _doubleClick of LatencyBox assigned by plugin_set_gui_ptr via KSHARK_MENU_PLUGIN_INITIALIZER. I do not know how to remove this dependency so I create new files to avoid code duplication. Please suggest if there is better way.
Hi Hongzhan, Indeed, this turns to be a bit trickier than I expected, but it is possible. I will comment in the patch. thanks, Yordan
Hongzhan Chen (2): kernel-shark: Move common APIs and definitions out to avoid duplication kernel-shark: Add plugin for handling Xenomai cobalt_context_switch src/libkshark-tepdata.c | 1 + src/plugins/CMakeLists.txt | 6 +- src/plugins/CobaltSwitchEvents.cpp | 125 +++++++++++++++ src/plugins/CommonSched.hpp | 99 ++++++++++++ src/plugins/SchedEvents.cpp | 87 +---------- src/plugins/common_sched.c | 37 +++++ src/plugins/common_sched.h | 50 ++++++ src/plugins/sched_events.c | 37 +---- src/plugins/sched_events.h | 12 +- src/plugins/xenomai_cobalt_switch_events.c | 169 +++++++++++++++++++++ src/plugins/xenomai_cobalt_switch_events.h | 54 +++++++ 11 files changed, 545 insertions(+), 132 deletions(-) create mode 100644 src/plugins/CobaltSwitchEvents.cpp create mode 100644 src/plugins/CommonSched.hpp create mode 100644 src/plugins/common_sched.c create mode 100644 src/plugins/common_sched.h create mode 100644 src/plugins/xenomai_cobalt_switch_events.c create mode 100644 src/plugins/xenomai_cobalt_switch_events.h