X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.h;h=f5fa092629d60e7030ac0b92aba0d943228268ab;hb=785d2d0dc3aec3a4e44fcf677155dd07e8e4cc1f;hp=7459218d3bb9eb9d8b2e0913d13cd7b1aaf64702;hpb=10a8a2237343699e3923d87e24dbf2d7fe225377;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/trace-ust.h b/src/bin/lttng-sessiond/trace-ust.h index 7459218d3..f5fa09262 100644 --- a/src/bin/lttng-sessiond/trace-ust.h +++ b/src/bin/lttng-sessiond/trace-ust.h @@ -1,19 +1,18 @@ /* * 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 - * 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 @@ -21,18 +20,19 @@ #include #include -#include #include #include #include +#include +#include "consumer.h" #include "ust-ctl.h" -/* UST Stream list */ -struct ltt_ust_stream_list { - unsigned int count; - struct cds_list_head head; +struct ltt_ust_ht_key { + const char *name; + const struct lttng_filter_bytecode *filter; + enum lttng_ust_loglevel_type loglevel; }; /* Context hash table nodes */ @@ -45,17 +45,8 @@ struct ltt_ust_context { struct ltt_ust_event { unsigned int enabled; struct lttng_ust_event attr; - struct lttng_ht *ctx; struct lttng_ht_node_str node; -}; - -/* UST stream */ -struct ltt_ust_stream { - int handle; - char pathname[PATH_MAX]; - struct lttng_ust_object_data *obj; - /* Using a list of streams to keep order. */ - struct cds_list_head list; + struct lttng_ust_filter_bytecode *filter; }; /* UST channel */ @@ -63,7 +54,7 @@ struct ltt_ust_channel { unsigned int enabled; char name[LTTNG_UST_SYM_NAME_LEN]; char pathname[PATH_MAX]; - struct lttng_ust_channel attr; + struct lttng_ust_channel_attr attr; struct lttng_ht *ctx; struct lttng_ht *events; struct lttng_ht_node_str node; @@ -74,7 +65,7 @@ struct ltt_ust_metadata { int handle; struct lttng_ust_object_data *obj; char pathname[PATH_MAX]; /* Trace file path name */ - struct lttng_ust_channel attr; + struct lttng_ust_channel_attr attr; struct lttng_ust_object_data *stream_obj; }; @@ -113,26 +104,41 @@ struct ltt_ust_session { /* 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; + /* Sequence number for filters so the tracer knows the ordering. */ + uint64_t filter_seq_num; }; #ifdef HAVE_LIBLTTNG_UST_CTL +int trace_ust_ht_match_event(struct cds_lfht_node *node, const void *_key); +int trace_ust_ht_match_event_by_name(struct cds_lfht_node *node, + const void *_key); + /* * Lookup functions. NULL is returned if not found. */ -struct ltt_ust_event *trace_ust_find_event_by_name(struct lttng_ht *ht, - char *name); +struct ltt_ust_event *trace_ust_find_event(struct lttng_ht *ht, + char *name, struct lttng_filter_bytecode *filter, int loglevel); struct ltt_ust_channel *trace_ust_find_channel_by_name(struct lttng_ht *ht, char *name); /* * 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 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); +struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev, + struct lttng_filter_bytecode *filter); struct ltt_ust_metadata *trace_ust_create_metadata(char *path); struct ltt_ust_context *trace_ust_create_context( struct lttng_event_context *ctx); @@ -148,13 +154,16 @@ void trace_ust_destroy_event(struct ltt_ust_event *event); #else /* HAVE_LIBLTTNG_UST_CTL */ -static inline -struct ltt_ust_event *trace_ust_find_event_by_name(struct lttng_ht *ht, - char *name) +static inline int trace_ust_ht_match_event(struct cds_lfht_node *node, + const void *_key) { - return NULL; + return 0; +} +static inline int trace_ust_ht_match_event_by_name(struct cds_lfht_node *node, + const void *_key) +{ + return 0; } - static inline struct ltt_ust_channel *trace_ust_find_channel_by_name(struct lttng_ht *ht, char *name) @@ -163,8 +172,8 @@ struct ltt_ust_channel *trace_ust_find_channel_by_name(struct lttng_ht *ht, } static inline -struct ltt_ust_session *trace_ust_create_session(char *path, pid_t pid, - struct lttng_domain *domain) +struct ltt_ust_session *trace_ust_create_session(char *path, + unsigned int session_id) { return NULL; } @@ -175,7 +184,8 @@ struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *attr, return NULL; } static inline -struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev) +struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev, + struct lttng_filter_bytecode *filter) { return NULL; } @@ -210,6 +220,11 @@ struct ltt_ust_context *trace_ust_create_context( { return NULL; } +static inline struct ltt_ust_event *trace_ust_find_event(struct lttng_ht *ht, + char *name, struct lttng_filter_bytecode *filter, int loglevel) +{ + return NULL; +} #endif /* HAVE_LIBLTTNG_UST_CTL */