X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt-sessiond%2Fltt-sessiond.h;h=63ef6d57dd3a3c038ee09758ba864e6fb28cb74b;hb=b3c750d2ffae77322752a5b4f43bd4ddae3dfea6;hp=c2ff58ab6ca84088281973a178cf602333bea84d;hpb=82a3637f639486c07ff937ab03e1e9532379d26a;p=lttng-tools.git diff --git a/ltt-sessiond/ltt-sessiond.h b/ltt-sessiond/ltt-sessiond.h index c2ff58ab6..63ef6d57d 100644 --- a/ltt-sessiond/ltt-sessiond.h +++ b/ltt-sessiond/ltt-sessiond.h @@ -8,7 +8,7 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License @@ -19,31 +19,44 @@ #ifndef _LTT_SESSIOND_H #define _LTT_SESSIOND_H -#define DEFAULT_HOME_DIR "/tmp" -#define DEFAULT_UST_SOCK_DIR DEFAULT_HOME_DIR "/ust-app-socks" -#define DEFAULT_GLOBAL_APPS_PIPE DEFAULT_UST_SOCK_DIR "/global" +#define _LGPL_SOURCE +#include + +#include "traceable-app.h" + +#define DEFAULT_HOME_DIR "/tmp" +#define DEFAULT_UST_SOCK_DIR DEFAULT_HOME_DIR "/ust-app-socks" +#define DEFAULT_GLOBAL_APPS_PIPE DEFAULT_UST_SOCK_DIR "/global" #define DEFAULT_TRACE_OUTPUT DEFAULT_HOME_DIR "/lttng" +#define DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH "/lttng-ust-apps-wait" +#define DEFAULT_HOME_APPS_WAIT_SHM_PATH "/lttng-ust-apps-wait-%u" + +struct module_param { + const char *name; + int required; +}; + /* LTTng kernel tracer modules list */ -const char *kernel_modules_list[] = { - "lib-ring-buffer", - "ltt-relay", - "ltt-ring-buffer-client-discard", - "ltt-ring-buffer-client-overwrite", - "ltt-ring-buffer-metadata-client", - "ltt-ring-buffer-client-mmap-discard", - "ltt-ring-buffer-client-mmap-overwrite", - "ltt-ring-buffer-metadata-mmap-client", - "lttng-ftrace", - "lttng-kprobes", - "lttng-probe-block", - "lttng-probe-irq", - "lttng-probe-kvm", - "lttng-probe-lttng", - "lttng-probe-sched", - "lttng-probe-syscalls", - "lttng-types", - NULL, +const struct module_param kernel_modules_list[] = { + { "lttng-ftrace", 0 }, + { "lttng-kprobes", 0 }, + { "lttng-kretprobes", 0 }, + { "lib-ring-buffer", 1 }, + { "ltt-relay", 1 }, + { "ltt-ring-buffer-client-discard", 1 }, + { "ltt-ring-buffer-client-overwrite", 1 }, + { "ltt-ring-buffer-metadata-client", 1 }, + { "ltt-ring-buffer-client-mmap-discard", 1 }, + { "ltt-ring-buffer-client-mmap-overwrite", 1 }, + { "ltt-ring-buffer-metadata-mmap-client", 1 }, + { "lttng-probe-lttng", 1 }, + { "lttng-types", 0 }, + { "lttng-probe-block", 0 }, + { "lttng-probe-irq", 0 }, + { "lttng-probe-kvm", 0 }, + { "lttng-probe-sched", 0 }, + { "lttng-probe-syscalls", 0 }, }; extern const char default_home_dir[], @@ -63,4 +76,19 @@ struct command_ctx { struct lttcomm_session_msg *lsm; }; +struct ust_command { + int sock; + struct ust_register_msg reg_msg; + struct cds_wfq_node node; +}; + +/* + * Queue used to enqueue UST registration request (ust_commant) and protected + * by a futex with a scheme N wakers / 1 waiters. See futex.c/.h + */ +struct ust_cmd_queue { + int32_t futex; + struct cds_wfq_queue queue; +}; + #endif /* _LTT_SESSIOND_H */