X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsession.h;h=1a31d3f0bdfd5fe9240a8de968428a7ed6293924;hp=7b927efe1103aa8950c16530f86a3ec5582497e8;hb=HEAD;hpb=d022620a4a3ce49862b49527c5e29d7ba6cce743 diff --git a/src/bin/lttng-sessiond/session.h b/src/bin/lttng-sessiond/session.h deleted file mode 100644 index 7b927efe1..000000000 --- a/src/bin/lttng-sessiond/session.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2011 - David Goulet - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2 only, - * as published by the Free Software Foundation. - * - * 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 - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef _LTT_SESSION_H -#define _LTT_SESSION_H - -#include - -#include - -#include "snapshot.h" -#include "trace-kernel.h" - -struct ltt_ust_session; - -/* - * Tracing session list - * - * Statically declared in session.c and can be accessed by using - * session_get_list() function that returns the pointer to the list. - */ -struct ltt_session_list { - /* - * This lock protects any read/write access to the list and - * next_uuid. All public functions in session.c acquire this - * lock and release it before returning. If none of those - * functions are used, the lock MUST be acquired in order to - * iterate or/and do any actions on that list. - */ - pthread_mutex_t lock; - - /* - * Session unique ID generator. The session list lock MUST be - * upon update and read of this counter. - */ - uint64_t next_uuid; - - /* Linked list head */ - struct cds_list_head head; -}; - -/* - * This data structure contains information needed to identify a tracing - * session for both LTTng and UST. - */ -struct ltt_session { - char name[NAME_MAX]; - struct ltt_kernel_session *kernel_session; - struct ltt_ust_session *ust_session; - /* - * Protect any read/write on this session data structure. This lock must be - * acquired *before* using any public functions declared below. Use - * session_lock() and session_unlock() for that. - */ - pthread_mutex_t lock; - struct cds_list_head list; - int enabled; /* enabled/started flag */ - uint64_t id; /* session unique identifier */ - /* UID/GID of the user owning the session */ - uid_t uid; - gid_t gid; - /* - * Network session handle. A value of 0 means that there is no remote - * session established. - */ - uint64_t net_handle; - /* - * This consumer is only set when the create_session_uri call is made. - * This contains the temporary information for a consumer output. Upon - * creation of the UST or kernel session, this consumer, if available, is - * copied into those sessions. - */ - struct consumer_output *consumer; - - /* Did a start command occured before the kern/ust session creation? */ - unsigned int started; - - /* Snapshot representation in a session. */ - struct snapshot snapshot; - /* Indicate if the session has to output the traces or not. */ - unsigned int output_traces; -}; - -/* Prototypes */ -int session_create(char *name, uid_t uid, gid_t gid); -int session_destroy(struct ltt_session *session); - -void session_lock(struct ltt_session *session); -void session_lock_list(void); -void session_unlock(struct ltt_session *session); -void session_unlock_list(void); - -struct ltt_session *session_find_by_name(char *name); -struct ltt_session_list *session_get_list(void); - -int session_access_ok(struct ltt_session *session, uid_t uid, gid_t gid); - -#endif /* _LTT_SESSION_H */