Update readme
[deliverable/lttng-modules.git] / ltt-debugfs-abi.c
index c6d9f602bba8c451aa9518cd62a6b5e79bcb5306..72077183aaa5c01acc48a85a0e3aeaa527e85363 100644 (file)
@@ -212,6 +212,9 @@ long lttng_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                                (struct lttng_kernel_tracer_version __user *) arg);
        case LTTNG_KERNEL_TRACEPOINT_LIST:
                return lttng_abi_tracepoint_list();
+       case LTTNG_KERNEL_WAIT_QUIESCENT:
+               synchronize_trace();
+               return 0;
        default:
                return -ENOIOCTLCMD;
        }
@@ -286,12 +289,24 @@ int lttng_abi_create_channel(struct file *session_file,
        }
        switch (channel_type) {
        case PER_CPU_CHANNEL:
-               transport_name = chan_param.overwrite ?
-                       "relay-overwrite" : "relay-discard";
+               if (chan_param.output == LTTNG_KERNEL_SPLICE) {
+                       transport_name = chan_param.overwrite ?
+                               "relay-overwrite" : "relay-discard";
+               } else if (chan_param.output == LTTNG_KERNEL_MMAP) {
+                       transport_name = chan_param.overwrite ?
+                               "relay-overwrite-mmap" : "relay-discard-mmap";
+               } else {
+                       return -EINVAL;
+               }
                fops = &lttng_channel_fops;
                break;
        case METADATA_CHANNEL:
-               transport_name = "relay-metadata";
+               if (chan_param.output == LTTNG_KERNEL_SPLICE)
+                       transport_name = "relay-metadata";
+               else if (chan_param.output == LTTNG_KERNEL_MMAP)
+                       transport_name = "relay-metadata-mmap";
+               else
+                       return -EINVAL;
                fops = &lttng_metadata_fops;
                break;
        default:
@@ -594,8 +609,9 @@ unsigned int lttng_channel_poll(struct file *file, poll_table *wait)
                        return POLLERR;
                if (channel->ops->is_finalized(channel->chan))
                        return POLLHUP;
-               else
+               if (channel->ops->buffer_has_read_closed_stream(channel->chan))
                        return POLLIN | POLLRDNORM;
+               return 0;
        }
        return mask;
 
This page took 0.024852 seconds and 5 git commands to generate.