}
static CDS_LIST_HEAD(sessions);
-static CDS_LIST_HEAD(ltt_transport_list);
/*
* Pending probes hash table, containing the registered ltt events for
return 0;
}
-static struct ltt_transport *ltt_transport_find(const char *name)
-{
- struct ltt_transport *transport;
-
- cds_list_for_each_entry(transport, <t_transport_list, node) {
- if (!strcmp(transport->name, name))
- return transport;
- }
- return NULL;
-}
-
struct ltt_channel *ltt_channel_create(struct ltt_session *session,
const char *transport_name,
void *buf_addr,
int *shm_fd, int *wait_fd,
uint64_t *memory_map_size)
{
- struct ltt_channel *chan;
+ struct ltt_channel *chan = NULL;
struct ltt_transport *transport;
if (session->been_active)
transport_name);
goto notransport;
}
- chan = zmalloc(sizeof(struct ltt_channel));
- if (!chan)
- goto nomem;
- chan->session = session;
- chan->id = session->free_chan_id++;
/*
* Note: the channel creation op already writes into the packet
* headers. Therefore the "chan" information used as input
* should be already accessible.
*/
- transport->ops.channel_create("[lttng]", chan, buf_addr,
+ chan = transport->ops.channel_create("[lttng]", buf_addr,
subbuf_size, num_subbuf, switch_timer_interval,
read_timer_interval, shm_fd, wait_fd,
memory_map_size);
- if (!chan->chan)
+ if (!chan)
goto create_error;
+ chan->session = session;
+ chan->id = session->free_chan_id++;
chan->enabled = 1;
chan->ops = &transport->ops;
cds_list_add(&chan->list, &session->chan);
return chan;
create_error:
- free(chan);
-nomem:
notransport:
active:
return NULL;
static
void _ltt_channel_destroy(struct ltt_channel *chan)
{
- chan->ops->channel_destroy(chan);
cds_list_del(&chan->list);
lttng_destroy_context(chan->ctx);
- free(chan);
+ chan->ops->channel_destroy(chan);
}
/*
return ret;
}
-/**
- * ltt_transport_register - LTT transport registration
- * @transport: transport structure
- *
- * Registers a transport which can be used as output to extract the data out of
- * LTTng. Called with ust_lock held.
- */
-void ltt_transport_register(struct ltt_transport *transport)
-{
- cds_list_add_tail(&transport->node, <t_transport_list);
-}
-
-/**
- * ltt_transport_unregister - LTT transport unregistration
- * @transport: transport structure
- * Called with ust_lock held.
- */
-void ltt_transport_unregister(struct ltt_transport *transport)
-{
- cds_list_del(&transport->node);
-}
-
void lttng_ust_events_exit(void)
{
struct ltt_session *session, *tmpsession;