X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-commands.hpp;h=4058de5a4d89953b41b4d947dcc4f9e230b9ce70;hb=dc88217e78259cb6b35fbaf6b85ad5aed6a37023;hp=98b0abcee66942caed4cfbd5cb60c24016a3beb9;hpb=c9e313bc594f40a86eed237dce222c0fc99c957f;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/notification-thread-commands.hpp b/src/bin/lttng-sessiond/notification-thread-commands.hpp index 98b0abcee..4058de5a4 100644 --- a/src/bin/lttng-sessiond/notification-thread-commands.hpp +++ b/src/bin/lttng-sessiond/notification-thread-commands.hpp @@ -8,14 +8,17 @@ #ifndef NOTIFICATION_THREAD_COMMANDS_H #define NOTIFICATION_THREAD_COMMANDS_H -#include -#include -#include -#include "notification-thread.hpp" -#include "notification-thread-internal.hpp" #include "notification-thread-events.hpp" +#include "notification-thread-internal.hpp" +#include "notification-thread.hpp" + #include + +#include +#include + #include +#include struct notification_thread_data; struct lttng_trigger; @@ -25,6 +28,8 @@ enum notification_thread_command_type { NOTIFICATION_COMMAND_TYPE_UNREGISTER_TRIGGER, NOTIFICATION_COMMAND_TYPE_ADD_CHANNEL, NOTIFICATION_COMMAND_TYPE_REMOVE_CHANNEL, + NOTIFICATION_COMMAND_TYPE_ADD_SESSION, + NOTIFICATION_COMMAND_TYPE_REMOVE_SESSION, NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_ONGOING, NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_COMPLETED, NOTIFICATION_COMMAND_TYPE_ADD_TRACER_EVENT_SOURCE, @@ -49,12 +54,21 @@ struct notification_thread_command { struct { const struct lttng_trigger *trigger; } unregister_trigger; + /* Add session. */ + struct { + uint64_t session_id; + const char *session_name; + uid_t session_uid; + gid_t session_gid; + } add_session; + /* Remove session. */ + struct { + uint64_t session_id; + } remove_session; /* Add channel. */ struct { struct { - const char *name; - uid_t uid; - gid_t gid; + uint64_t id; } session; struct { const char *name; @@ -69,9 +83,7 @@ struct notification_thread_command { enum lttng_domain_type domain; } remove_channel; struct { - const char *session_name; - uid_t uid; - gid_t gid; + uint64_t session_id; uint64_t trace_archive_chunk_id; /* Weak reference. */ struct lttng_trace_archive_location *location; @@ -112,36 +124,48 @@ struct notification_thread_command { bool is_async; }; -enum lttng_error_code notification_thread_command_register_trigger( - struct notification_thread_handle *handle, - struct lttng_trigger *trigger, - bool is_anonymous_trigger); - -enum lttng_error_code notification_thread_command_unregister_trigger( - struct notification_thread_handle *handle, - const struct lttng_trigger *trigger); - -enum lttng_error_code notification_thread_command_add_channel( - struct notification_thread_handle *handle, - char *session_name, uid_t session_uid, gid_t session_gid, - char *channel_name, uint64_t key, - enum lttng_domain_type domain, uint64_t capacity); +enum lttng_error_code +notification_thread_command_register_trigger(struct notification_thread_handle *handle, + struct lttng_trigger *trigger, + bool is_anonymous_trigger); + +enum lttng_error_code +notification_thread_command_unregister_trigger(struct notification_thread_handle *handle, + const struct lttng_trigger *trigger); + +enum lttng_error_code +notification_thread_command_add_session(struct notification_thread_handle *handle, + uint64_t session_id, + const char *session_name, + uid_t session_uid, + gid_t session_gid); + +enum lttng_error_code +notification_thread_command_remove_session(struct notification_thread_handle *handle, + uint64_t session_id); + +enum lttng_error_code +notification_thread_command_add_channel(struct notification_thread_handle *handle, + uint64_t session_id, + char *channel_name, + uint64_t key, + enum lttng_domain_type domain, + uint64_t capacity); enum lttng_error_code notification_thread_command_remove_channel( - struct notification_thread_handle *handle, - uint64_t key, enum lttng_domain_type domain); + struct notification_thread_handle *handle, uint64_t key, enum lttng_domain_type domain); -enum lttng_error_code notification_thread_command_session_rotation_ongoing( - struct notification_thread_handle *handle, - const char *session_name, uid_t session_uid, gid_t session_gid, - uint64_t trace_archive_chunk_id); +enum lttng_error_code +notification_thread_command_session_rotation_ongoing(struct notification_thread_handle *handle, + uint64_t session_id, + uint64_t trace_archive_chunk_id); /* Ownership of location is transferred. */ enum lttng_error_code notification_thread_command_session_rotation_completed( - struct notification_thread_handle *handle, - const char *session_name, uid_t session_uid, gid_t session_gid, - uint64_t trace_archive_chunk_id, - struct lttng_trace_archive_location *location); + struct notification_thread_handle *handle, + uint64_t session_id, + uint64_t trace_archive_chunk_id, + struct lttng_trace_archive_location *location); /* * Return the set of triggers visible to a given client. @@ -156,30 +180,29 @@ enum lttng_error_code notification_thread_command_session_rotation_completed( * * The caller has the exclusive ownership of the returned trigger set. */ -enum lttng_error_code notification_thread_command_list_triggers( - struct notification_thread_handle *handle, - uid_t client_uid, - struct lttng_triggers **triggers); +enum lttng_error_code +notification_thread_command_list_triggers(struct notification_thread_handle *handle, + uid_t client_uid, + struct lttng_triggers **triggers); /* * The ownership of trigger_event_application_pipe is _not_ transferred to * the notification thread. */ -enum lttng_error_code notification_thread_command_add_tracer_event_source( - struct notification_thread_handle *handle, - int tracer_event_source_fd, - enum lttng_domain_type domain); - -enum lttng_error_code notification_thread_command_remove_tracer_event_source( - struct notification_thread_handle *handle, - int tracer_event_source_fd); - -void notification_thread_command_quit( - struct notification_thread_handle *handle); - -enum lttng_error_code notification_thread_command_get_trigger( - struct notification_thread_handle *handle, - const struct lttng_trigger *trigger, - struct lttng_trigger **real_trigger); +enum lttng_error_code +notification_thread_command_add_tracer_event_source(struct notification_thread_handle *handle, + int tracer_event_source_fd, + enum lttng_domain_type domain); + +enum lttng_error_code +notification_thread_command_remove_tracer_event_source(struct notification_thread_handle *handle, + int tracer_event_source_fd); + +void notification_thread_command_quit(struct notification_thread_handle *handle); + +enum lttng_error_code +notification_thread_command_get_trigger(struct notification_thread_handle *handle, + const struct lttng_trigger *trigger, + struct lttng_trigger **real_trigger); #endif /* NOTIFICATION_THREAD_COMMANDS_H */