X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=liblttng-ust-ctl%2Fustctl.c;h=5801bc6b4b78e6b8c6b837d44755c79f1264f348;hb=99b99b470fddbc81b9c7d01320616efdbe1cb55b;hp=49ae3e6cf94dfc12f6ae32c176841d8a8e71cc79;hpb=89f26d57d2880f83c9fee7fbc6ec870d1def0d2c;p=lttng-ust.git diff --git a/liblttng-ust-ctl/ustctl.c b/liblttng-ust-ctl/ustctl.c index 49ae3e6c..5801bc6b 100644 --- a/liblttng-ust-ctl/ustctl.c +++ b/liblttng-ust-ctl/ustctl.c @@ -32,6 +32,7 @@ #include "../libringbuffer/frontend.h" #include "../liblttng-ust/wait.h" #include "../liblttng-ust/lttng-rb-clients.h" +#include "../liblttng-ust/clock.h" /* * Number of milliseconds to retry before failing metadata writes on @@ -942,8 +943,14 @@ error: /* Buffer operations */ +int ustctl_get_nr_stream_per_channel(void) +{ + return num_possible_cpus(); +} + struct ustctl_consumer_channel * - ustctl_create_channel(struct ustctl_consumer_channel_attr *attr) + ustctl_create_channel(struct ustctl_consumer_channel_attr *attr, + const int *stream_fds, int nr_stream_fds) { struct ustctl_consumer_channel *chan; const char *transport_name; @@ -995,7 +1002,8 @@ struct ustctl_consumer_channel * attr->subbuf_size, attr->num_subbuf, attr->switch_timer_interval, attr->read_timer_interval, - attr->uuid, attr->chan_id); + attr->uuid, attr->chan_id, + stream_fds, nr_stream_fds); if (!chan->chan) { goto chan_error; } @@ -1638,6 +1646,22 @@ int ustctl_get_current_timestamp(struct ustctl_consumer_stream *stream, return client_cb->current_timestamp(buf, handle, ts); } +#if defined(__x86_64__) || defined(__i386__) + +int ustctl_has_perf_counters(void) +{ + return 1; +} + +#else + +int ustctl_has_perf_counters(void) +{ + return 0; +} + +#endif + /* * Returns 0 on success, negative error value on error. */ @@ -1980,6 +2004,7 @@ static __attribute__((constructor)) void ustctl_init(void) { init_usterr(); + lttng_ust_clock_init(); lttng_ring_buffer_metadata_client_init(); lttng_ring_buffer_client_overwrite_init(); lttng_ring_buffer_client_overwrite_rt_init();