#define LTTNG_UST_STREAM _UST_CMD(0x60)
#define LTTNG_UST_EVENT \
_UST_CMDW(0x61, struct lttng_ust_event)
-
+#define LTTNG_UST_STREAM_PIPE _UST_CMD(0x62)
/* Event and Channel FD commands */
#define LTTNG_UST_CONTEXT \
_UST_CMDW(0x70, struct lttng_ust_context)
int ustctl_open_metadata(int sock, int session_handle,
struct lttng_ust_channel_attr *chops,
struct lttng_ust_object_data **metadata_data);
+int ustctl_open_wait_pipe(int sock, struct lttng_ust_object *channel_data);
int ustctl_create_channel(int sock, int session_handle,
struct lttng_ust_channel_attr *chops,
struct lttng_ust_object_data **channel_data);
goto error_rcu_unlock;
}
+ /* Ask UST to open the write side of the wait pipe */
+ DBG("Asking UST to open metadata stream wait pipe path: %s\n",
+ ua_sess->metadata->stream_obj->wait_pipe_path);
+
+ ret = ustctl_open_wait_pipe(app->sock, ua_sess->metadata->obj);
+
+ if (ret < 0) {
+ ERR("Asking UST to open wait_pipe failed");
+ }
+
+ /* each channel */
+ cds_lfht_for_each_entry(ua_sess->channels->ht, &iter.iter, ua_chan,
+ node.node) {
+
+ DBG("Asking UST to open channel wait pipe path: %s\n",
+ ua_chan->obj->wait_pipe_path);
+
+ ret = ustctl_open_wait_pipe(app->sock, ua_chan->obj);
+
+ if (ret < 0) {
+ ERR("Asking UST to open wait_pipe failed for wait pipe: %s",
+ ua_chan->obj->wait_pipe_path);
+ }
+ }
+
skip_setup:
/* This start the UST tracing */
ret = ustctl_start_session(app->sock, ua_sess->handle);