Propagate trace format to ltt_kernel_session object
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 18 Aug 2022 20:32:53 +0000 (16:32 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Fri, 19 Aug 2022 15:52:57 +0000 (11:52 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: Icc72fe8df669e2bb53e1d6ba7865bb75723aa672

include/lttng/trace-format-descriptor-internal.hpp
src/bin/lttng-sessiond/kernel.cpp
src/bin/lttng-sessiond/trace-kernel.cpp
src/bin/lttng-sessiond/trace-kernel.hpp
tests/unit/test_kernel_data.cpp

index 6a142e2bd1aab3df342b95610a9cc41727b87bdf..527965670110cc20f291d5223ec6f1800bc340d4 100644 (file)
@@ -36,6 +36,7 @@ class trace_format_descriptor {
 public:
        using uptr = std::unique_ptr<trace_format_descriptor>;
        using sptr = std::shared_ptr<trace_format_descriptor>;
+       using csptr = std::shared_ptr<const trace_format_descriptor>;
        explicit trace_format_descriptor(enum lttng_trace_format_descriptor_type type) : _type(type)
        {
        }
index 7428e795c56de7e1204a89f75b4eebccbd1d5c74..ca2b403ed84f6b72321e31643db637489d216d97 100644 (file)
@@ -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<const lttng::trace_format_descriptor>(
+                                       session->trace_format));
        if (lks == NULL) {
                ret = -1;
                goto error;
index 63524f7261fe9413dd097d25a438126c5f02d152..a22ead29dbbbc05be6f9fc1a50176d40aa828c23 100644 (file)
@@ -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:
index 8844e8a0d9aa779eefe2bd44bde3c23848f32503..55ddd44cb7b813259f0c08d284eea2878ddcda90 100644 (file)
@@ -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,
index eae335be205026b0abd549cf166cf342d32b40aa..194f798fd1410c9ec21a8ba9782668422c727437 100644 (file)
@@ -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<const lttng::trace_format_descriptor_ctf2>();
+       kern = trace_kernel_create_session(trace_format);
        ok(kern != NULL, "Create kernel session");
 
        if (!kern) {
This page took 0.029453 seconds and 5 git commands to generate.