From: Jonathan Rajotte Date: Thu, 18 Aug 2022 20:32:53 +0000 (-0400) Subject: Propagate trace format to ltt_kernel_session object X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=0e1fd1e8aba0f8de1e27416d582018ef6316e986 Propagate trace format to ltt_kernel_session object Signed-off-by: Jonathan Rajotte Change-Id: Icc72fe8df669e2bb53e1d6ba7865bb75723aa672 --- diff --git a/include/lttng/trace-format-descriptor-internal.hpp b/include/lttng/trace-format-descriptor-internal.hpp index 6a142e2bd..527965670 100644 --- a/include/lttng/trace-format-descriptor-internal.hpp +++ b/include/lttng/trace-format-descriptor-internal.hpp @@ -36,6 +36,7 @@ class trace_format_descriptor { public: using uptr = std::unique_ptr; using sptr = std::shared_ptr; + using csptr = std::shared_ptr; explicit trace_format_descriptor(enum lttng_trace_format_descriptor_type type) : _type(type) { } diff --git a/src/bin/lttng-sessiond/kernel.cpp b/src/bin/lttng-sessiond/kernel.cpp index 7428e795c..ca2b403ed 100644 --- a/src/bin/lttng-sessiond/kernel.cpp +++ b/src/bin/lttng-sessiond/kernel.cpp @@ -118,7 +118,9 @@ int kernel_create_session(struct ltt_session *session) LTTNG_ASSERT(session); /* Allocate data structure */ - lks = trace_kernel_create_session(); + lks = trace_kernel_create_session( + std::const_pointer_cast( + session->trace_format)); if (lks == NULL) { ret = -1; goto error; diff --git a/src/bin/lttng-sessiond/trace-kernel.cpp b/src/bin/lttng-sessiond/trace-kernel.cpp index 63524f726..a22ead29d 100644 --- a/src/bin/lttng-sessiond/trace-kernel.cpp +++ b/src/bin/lttng-sessiond/trace-kernel.cpp @@ -146,7 +146,8 @@ struct ltt_kernel_event *trace_kernel_get_event_by_name( * * Return pointer to structure or NULL. */ -struct ltt_kernel_session *trace_kernel_create_session(void) +struct ltt_kernel_session *trace_kernel_create_session( + lttng::trace_format_descriptor::csptr trace_format) { struct ltt_kernel_session *lks = NULL; @@ -191,6 +192,8 @@ struct ltt_kernel_session *trace_kernel_create_session(void) goto error; } + lks->trace_format = trace_format; + return lks; error: diff --git a/src/bin/lttng-sessiond/trace-kernel.hpp b/src/bin/lttng-sessiond/trace-kernel.hpp index 8844e8a0d..55ddd44cb 100644 --- a/src/bin/lttng-sessiond/trace-kernel.hpp +++ b/src/bin/lttng-sessiond/trace-kernel.hpp @@ -136,6 +136,8 @@ struct ltt_kernel_session { struct process_attr_tracker *tracker_vuid{}; struct process_attr_tracker *tracker_gid{}; struct process_attr_tracker *tracker_vgid{}; + + lttng::trace_format_descriptor::csptr trace_format; }; /* @@ -154,7 +156,8 @@ struct ltt_kernel_channel *trace_kernel_get_channel_by_name( /* * Create functions malloc() the data structure. */ -struct ltt_kernel_session *trace_kernel_create_session(void); +struct ltt_kernel_session *trace_kernel_create_session( + lttng::trace_format_descriptor::csptr trace_format); struct ltt_kernel_channel *trace_kernel_create_channel( struct lttng_channel *chan); enum lttng_error_code trace_kernel_create_event(struct lttng_event *ev, diff --git a/tests/unit/test_kernel_data.cpp b/tests/unit/test_kernel_data.cpp index eae335be2..194f798fd 100644 --- a/tests/unit/test_kernel_data.cpp +++ b/tests/unit/test_kernel_data.cpp @@ -55,7 +55,9 @@ static char *get_random_string(void) static void test_create_one_kernel_session(void) { - kern = trace_kernel_create_session(); + lttng::trace_format_descriptor::csptr trace_format = + std::make_shared(); + kern = trace_kernel_create_session(trace_format); ok(kern != NULL, "Create kernel session"); if (!kern) {