SoW-2020-0002: Trace Hit Counters: trigger error reporting integration
[lttng-tools.git] / src / bin / lttng-sessiond / notification-thread-internal.h
index e36180fb6af634ef4e23c6f1ad7aba45bb3017d1..53ee6064ccb529c155673f7d3527b8fc11bcf3dc 100644 (file)
@@ -10,6 +10,7 @@
 
 #include <common/compat/socket.h>
 #include <common/credentials.h>
+#include <common/payload.h>
 #include <lttng/notification/channel-internal.h>
 #include <lttng/ref-internal.h>
 #include <stdbool.h>
@@ -74,6 +75,17 @@ struct channel_info {
        struct rcu_head rcu_node;
 };
 
+/*
+ * Facilities to carry the different notifications type in the action
+ * processing code path.
+ */
+struct lttng_trigger_notification {
+       uint64_t id;
+       enum lttng_domain_type type;
+       size_t capture_buf_size;
+       char *capture_buffer;
+};
+
 struct notification_client_list_element {
        struct notification_client *client;
        struct cds_list_head node;
@@ -156,9 +168,11 @@ struct notification_client {
                         * buffers' "size" is set to contain the current
                         * message's complete payload.
                         */
-                       struct lttng_dynamic_buffer buffer;
+                       struct lttng_payload payload;
                        /* Bytes left to receive for the current message. */
                        size_t bytes_to_receive;
+                       /* FDs left to receive for the current message. */
+                       int fds_to_receive;
                        /* Type of the message being received. */
                        enum lttng_notification_channel_message_type msg_type;
                        /*
@@ -192,7 +206,7 @@ struct notification_client {
                         * misbehaving/malicious client.
                         */
                        bool queued_command_reply;
-                       struct lttng_dynamic_buffer buffer;
+                       struct lttng_payload payload;
                } outbound;
        } communication;
        /* call_rcu delayed reclaim. */
@@ -236,4 +250,18 @@ int notification_thread_client_communication_update(
                notification_client_id id,
                enum client_transmission_status transmission_status);
 
+/*
+ * Takes ownership of the payload if present.
+ */
+LTTNG_HIDDEN
+struct lttng_trigger_notification *lttng_trigger_notification_create(
+               uint64_t id,
+               enum lttng_domain_type domain,
+               char *payload,
+               size_t payload_size);
+
+LTTNG_HIDDEN
+void lttng_trigger_notification_destroy(
+               struct lttng_trigger_notification *trigger_notification);
+
 #endif /* NOTIFICATION_THREAD_INTERNAL_H */
This page took 0.025462 seconds and 5 git commands to generate.