Cleanup: modinfo keys
[lttng-modules.git] / lib / ringbuffer / ring_buffer_vfs.c
index 33dfeaaaba4c5ce55df34ac97b9b812f78d8f565..a69d374e58cc137515f7384b347470e9bd7bae9c 100644 (file)
 #include <linux/fs.h>
 #include <linux/compat.h>
 
-#include "../../wrapper/ringbuffer/backend.h"
-#include "../../wrapper/ringbuffer/frontend.h"
-#include "../../wrapper/ringbuffer/vfs.h"
-#include "../../wrapper/poll.h"
+#include <wrapper/ringbuffer/backend.h>
+#include <wrapper/ringbuffer/frontend.h>
+#include <wrapper/ringbuffer/vfs.h>
+#include <wrapper/poll.h>
+#include <lttng-tracer.h>
 
 static int put_ulong(unsigned long val, unsigned long arg)
 {
@@ -41,6 +42,10 @@ static int compat_put_ulong(compat_ulong_t val, unsigned long arg)
 }
 #endif
 
+/*
+ * This is not used by anonymous file descriptors. This code is left
+ * there if we ever want to implement an inode with open() operation.
+ */
 int lib_ring_buffer_open(struct inode *inode, struct file *file,
                struct lib_ring_buffer *buf)
 {
@@ -188,6 +193,9 @@ long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd,
        case RING_BUFFER_SNAPSHOT:
                return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot,
                                            &buf->prod_snapshot);
+       case RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS:
+               return lib_ring_buffer_snapshot_sample_positions(buf,
+                               &buf->cons_snapshot, &buf->prod_snapshot);
        case RING_BUFFER_SNAPSHOT_GET_CONSUMED:
                return put_ulong(buf->cons_snapshot, arg);
        case RING_BUFFER_SNAPSHOT_GET_PRODUCED:
@@ -263,7 +271,10 @@ long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd,
                                 arg);
        }
        case RING_BUFFER_FLUSH:
-               lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE);
+               lib_ring_buffer_switch_remote(buf);
+               return 0;
+       case RING_BUFFER_FLUSH_EMPTY:
+               lib_ring_buffer_switch_remote_empty(buf);
                return 0;
        default:
                return -ENOIOCTLCMD;
@@ -317,6 +328,9 @@ long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd,
        case RING_BUFFER_COMPAT_SNAPSHOT:
                return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot,
                                                &buf->prod_snapshot);
+       case RING_BUFFER_COMPAT_SNAPSHOT_SAMPLE_POSITIONS:
+               return lib_ring_buffer_snapshot_sample_positions(buf,
+                               &buf->cons_snapshot, &buf->prod_snapshot);
        case RING_BUFFER_COMPAT_SNAPSHOT_GET_CONSUMED:
                return compat_put_ulong(buf->cons_snapshot, arg);
        case RING_BUFFER_COMPAT_SNAPSHOT_GET_PRODUCED:
@@ -408,7 +422,10 @@ long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd,
                return compat_put_ulong(read_offset, arg);
        }
        case RING_BUFFER_COMPAT_FLUSH:
-               lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE);
+               lib_ring_buffer_switch_remote(buf);
+               return 0;
+       case RING_BUFFER_COMPAT_FLUSH_EMPTY:
+               lib_ring_buffer_switch_remote_empty(buf);
                return 0;
        default:
                return -ENOIOCTLCMD;
@@ -442,5 +459,9 @@ const struct file_operations lib_ring_buffer_file_operations = {
 EXPORT_SYMBOL_GPL(lib_ring_buffer_file_operations);
 
 MODULE_LICENSE("GPL and additional rights");
-MODULE_AUTHOR("Mathieu Desnoyers");
-MODULE_DESCRIPTION("Ring Buffer Library VFS");
+MODULE_AUTHOR("Mathieu Desnoyers <mathieu.desnoyers@efficios.com>");
+MODULE_DESCRIPTION("LTTng ring buffer library");
+MODULE_VERSION(__stringify(LTTNG_MODULES_MAJOR_VERSION) "."
+       __stringify(LTTNG_MODULES_MINOR_VERSION) "."
+       __stringify(LTTNG_MODULES_PATCHLEVEL_VERSION)
+       LTTNG_MODULES_EXTRAVERSION);
This page took 0.02954 seconds and 4 git commands to generate.