@@ -29,6 +29,9 @@
struct tep_plugin_list *trace_load_plugins(struct tep_handle *tep, int flags);
+int tracecmd_lib_init(void);
+void tracecmd_lib_free(void);
+
int *tracecmd_add_id(int *list, int id, int len);
enum {
@@ -589,3 +589,12 @@ bool tracecmd_is_version_supported(unsigned int version)
return true;
return false;
}
+
+int tracecmd_lib_init(void)
+{
+ return 0;
+}
+
+void tracecmd_lib_free(void)
+{
+}
@@ -116,15 +116,20 @@ int main (int argc, char **argv)
if (argc < 2)
trace_usage(argc, argv);
+ tracecmd_lib_init();
+
for (i = 0; i < ARRAY_SIZE(commands); ++i) {
if (strcmp(argv[1], commands[i].name) == 0 ){
commands[i].run(argc, argv);
- goto out;
+ break;
}
}
+ tracecmd_lib_free();
+
/* No valid command found, show help */
- trace_usage(argc, argv);
-out:
+ if (i == ARRAY_SIZE(commands))
+ trace_usage(argc, argv);
+
exit(0);
}
The trace-cmd library has no APIs for initialization and free of the whole library. Added these new APIs: tracecmd_lib_init() tracecmd_lib_free() and call them in trace-cmd main function. Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> --- lib/trace-cmd/include/private/trace-cmd-private.h | 3 +++ lib/trace-cmd/trace-util.c | 9 +++++++++ tracecmd/trace-cmd.c | 11 ++++++++--- 3 files changed, 20 insertions(+), 3 deletions(-)