2 * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
3 * Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
4 * 2013 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License, version 2 only,
8 * as published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #include "lttng-sessiond.h"
21 #include <common/compat/uuid.h>
23 lttng_uuid sessiond_uuid
;
25 int ust_consumerd64_fd
= -1;
26 int ust_consumerd32_fd
= -1;
30 struct health_app
*health_sessiond
;
32 struct notification_thread_handle
*notification_thread_handle
;
34 struct lttng_ht
*agent_apps_ht_by_sock
= NULL
;
36 struct lttng_kernel_tracer_version kernel_tracer_version
;
37 struct lttng_kernel_tracer_abi_version kernel_tracer_abi_version
;
39 int kernel_poll_pipe
[2] = { -1, -1 };
44 struct sessiond_config config
;
46 struct consumer_data kconsumer_data
= {
47 .type
= LTTNG_CONSUMER_KERNEL
,
50 .channel_monitor_pipe
= -1,
51 .pid_mutex
= PTHREAD_MUTEX_INITIALIZER
,
52 .lock
= PTHREAD_MUTEX_INITIALIZER
,
55 struct consumer_data ustconsumer64_data
= {
56 .type
= LTTNG_CONSUMER64_UST
,
59 .channel_monitor_pipe
= -1,
60 .pid_mutex
= PTHREAD_MUTEX_INITIALIZER
,
61 .lock
= PTHREAD_MUTEX_INITIALIZER
,
64 struct consumer_data ustconsumer32_data
= {
65 .type
= LTTNG_CONSUMER32_UST
,
68 .channel_monitor_pipe
= -1,
69 .pid_mutex
= PTHREAD_MUTEX_INITIALIZER
,
70 .lock
= PTHREAD_MUTEX_INITIALIZER
,
73 enum consumerd_state ust_consumerd_state
;
74 enum consumerd_state kernel_consumerd_state
;
76 static void __attribute__((constructor
)) init_sessiond_uuid(void)
78 if (lttng_uuid_generate(sessiond_uuid
)) {
79 ERR("Failed to generate a session daemon UUID");