/*
* Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; only version 2
- * of the License.
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 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_TRACE_UST_H
#include <config.h>
#include <limits.h>
-#include <urcu.h>
#include <urcu/list.h>
#include <lttng/lttng.h>
#include <common/hashtable/hashtable.h>
+#include "consumer.h"
#include "ust-ctl.h"
/* UST Stream list */
struct lttng_ust_event attr;
struct lttng_ht *ctx;
struct lttng_ht_node_str node;
+ struct lttng_ust_filter_bytecode *filter;
};
/* UST stream */
struct ltt_ust_stream {
int handle;
char pathname[PATH_MAX];
+ /* Format is %s_%d respectively channel name and CPU number. */
+ char name[LTTNG_SYMBOL_NAME_LEN];
struct lttng_ust_object_data *obj;
/* Using a list of streams to keep order. */
struct cds_list_head list;
/* UID/GID of the user owning the session */
uid_t uid;
gid_t gid;
+ /*
+ * Two consumer_output object are needed where one is for the current
+ * output object and the second one is the temporary object used to store
+ * URI being set by the lttng_set_consumer_uri call. Once
+ * lttng_enable_consumer is called, the two pointers are swapped.
+ */
+ struct consumer_output *consumer;
+ struct consumer_output *tmp_consumer;
};
#ifdef HAVE_LIBLTTNG_UST_CTL
/*
* Create functions malloc() the data structure.
*/
-struct ltt_ust_session *trace_ust_create_session(char *path, int session_id,
- struct lttng_domain *domain);
+struct ltt_ust_session *trace_ust_create_session(char *path,
+ unsigned int session_id, struct lttng_domain *domain);
struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *attr,
char *path);
struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev);