X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-commands.h;fp=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-commands.h;h=0000000000000000000000000000000000000000;hp=643b0e6020913432b47e763790cbf3421080e2cc;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c diff --git a/src/bin/lttng-sessiond/notification-thread-commands.h b/src/bin/lttng-sessiond/notification-thread-commands.h deleted file mode 100644 index 643b0e602..000000000 --- a/src/bin/lttng-sessiond/notification-thread-commands.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (C) 2017 Jérémie Galarneau - * - * SPDX-License-Identifier: GPL-2.0-only - * - */ - -#ifndef NOTIFICATION_THREAD_COMMANDS_H -#define NOTIFICATION_THREAD_COMMANDS_H - -#include -#include -#include -#include "notification-thread.h" -#include "notification-thread-internal.h" -#include "notification-thread-events.h" -#include -#include - -struct notification_thread_data; -struct lttng_trigger; - -enum notification_thread_command_type { - NOTIFICATION_COMMAND_TYPE_REGISTER_TRIGGER, - NOTIFICATION_COMMAND_TYPE_UNREGISTER_TRIGGER, - NOTIFICATION_COMMAND_TYPE_ADD_CHANNEL, - NOTIFICATION_COMMAND_TYPE_REMOVE_CHANNEL, - NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_ONGOING, - NOTIFICATION_COMMAND_TYPE_SESSION_ROTATION_COMPLETED, - NOTIFICATION_COMMAND_TYPE_ADD_TRACER_EVENT_SOURCE, - NOTIFICATION_COMMAND_TYPE_REMOVE_TRACER_EVENT_SOURCE, - NOTIFICATION_COMMAND_TYPE_LIST_TRIGGERS, - NOTIFICATION_COMMAND_TYPE_QUIT, - NOTIFICATION_COMMAND_TYPE_CLIENT_COMMUNICATION_UPDATE, - NOTIFICATION_COMMAND_TYPE_GET_TRIGGER, -}; - -struct notification_thread_command { - struct cds_list_head cmd_list_node; - - enum notification_thread_command_type type; - union { - /* Register trigger. */ - struct { - struct lttng_trigger *trigger; - bool is_trigger_anonymous; - } register_trigger; - /* Unregister trigger. */ - struct { - const struct lttng_trigger *trigger; - } unregister_trigger; - /* Add channel. */ - struct { - struct { - const char *name; - uid_t uid; - gid_t gid; - } session; - struct { - const char *name; - enum lttng_domain_type domain; - uint64_t key; - uint64_t capacity; - } channel; - } add_channel; - /* Remove channel. */ - struct { - uint64_t key; - enum lttng_domain_type domain; - } remove_channel; - struct { - const char *session_name; - uid_t uid; - gid_t gid; - uint64_t trace_archive_chunk_id; - /* Weak reference. */ - struct lttng_trace_archive_location *location; - } session_rotation; - /* Add/Remove tracer event source fd. */ - struct { - int tracer_event_source_fd; - enum lttng_domain_type domain; - } tracer_event_source; - /* List triggers. */ - struct { - /* Credentials of the requesting user. */ - uid_t uid; - } list_triggers; - /* Client communication update. */ - struct { - notification_client_id id; - enum client_transmission_status status; - } client_communication_update; - - struct { - const struct lttng_trigger *trigger; - } get_trigger; - - } parameters; - - union { - struct { - struct lttng_triggers *triggers; - } list_triggers; - struct { - struct lttng_trigger *trigger; - } get_trigger; - } reply; - /* lttng_waiter on which to wait for command reply (optional). */ - struct lttng_waiter reply_waiter; - enum lttng_error_code reply_code; - 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_remove_channel( - 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); - -/* 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); - -/* - * Return the set of triggers visible to a given client. - * - * The trigger objects contained in the set are the actual trigger instances - * used by the notification subsystem (i.e. not a copy). Given that the command - * is only used to serialize the triggers, this is fine: the properties that - * are serialized are immutable over the lifetime of the triggers. - * - * Moreover, the lifetime of the trigger instances is protected through - * reference counting (references are held by the trigger set). - * - * 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); - -/* - * 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); - -#endif /* NOTIFICATION_THREAD_COMMANDS_H */