SoW-2020-0002: Trace Hit Counters: trigger error reporting integration
[lttng-tools.git] / src / bin / lttng-sessiond / notification-thread-commands.h
index c09ebea46f0c72a0e0acc1e42da590dd3b096423..6556bf7c5cce08d30634e1c5b68250d9b5d18982 100644 (file)
@@ -27,6 +27,10 @@ enum notification_thread_command_type {
        NOTIFICATION_COMMAND_TYPE_REMOVE_CHANNEL,
        NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_ONGOING,
        NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_COMPLETED,
+       NOTIFICATION_COMMAND_TYPE_ADD_APPLICATION,
+       NOTIFICATION_COMMAND_TYPE_REMOVE_APPLICATION,
+       NOTIFICATION_COMMAND_TYPE_GET_TOKENS,
+       NOTIFICATION_COMMAND_TYPE_LIST_TRIGGERS,
        NOTIFICATION_COMMAND_TYPE_QUIT,
        NOTIFICATION_COMMAND_TYPE_CLIENT_COMMUNICATION_UPDATE,
 };
@@ -64,6 +68,16 @@ struct notification_thread_command {
                        uint64_t trace_archive_chunk_id;
                        struct lttng_trace_archive_location *location;
                } session_rotation;
+               /* Add/Remove application */
+               struct {
+                       int read_side_trigger_event_application_pipe;
+                       enum lttng_domain_type domain;
+               } application;
+               /* List triggers */
+               struct {
+                       /* Credential */
+                       uid_t uid;
+               } list_triggers;
                /* Client communication update. */
                struct {
                        notification_client_id id;
@@ -72,6 +86,15 @@ struct notification_thread_command {
 
        } parameters;
 
+       union {
+               struct {
+                       struct lttng_triggers *triggers;
+               } get_tokens;
+               struct {
+                       struct lttng_triggers *triggers;
+               } list_triggers;
+       } reply;
+
        /* lttng_waiter on which to wait for command reply (optional). */
        struct lttng_waiter reply_waiter;
        enum lttng_error_code reply_code;
@@ -108,6 +131,28 @@ enum lttng_error_code notification_thread_command_session_rotation_completed(
                uint64_t trace_archive_chunk_id,
                struct lttng_trace_archive_location *location);
 
+enum lttng_error_code notification_thread_command_add_application(
+               struct notification_thread_handle *handle,
+               int fd,
+               enum lttng_domain_type domain
+               );
+
+enum lttng_error_code notification_thread_command_remove_application(
+               struct notification_thread_handle *handle,
+               int trigger_event_application_pipe);
+
+/* Must hold the notification_trigger_tokens_ht_lock to protect against
+ * insertion removal of triggers TODO: is it the case even with refcounting? */
+/* todo find a better way....*/
+enum lttng_error_code notification_thread_command_get_tokens(
+               struct notification_thread_handle *handle,
+               struct lttng_triggers **triggers);
+
+enum lttng_error_code notification_thread_command_list_triggers(
+               struct notification_thread_handle *handle,
+               uid_t uid,
+               struct lttng_triggers **triggers);
+
 void notification_thread_command_quit(
                struct notification_thread_handle *handle);
 
This page took 0.025442 seconds and 5 git commands to generate.