#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/version.h>
+#include <lttng/kernel-version.h>
#include <wrapper/splice.h>
#include <ringbuffer/backend.h>
#include <ringbuffer/frontend.h>
#include <ringbuffer/vfs.h>
-#if 0
+#ifdef DEBUG
#define printk_dbg(fmt, args...) printk(fmt, args)
#else
-#define printk_dbg(fmt, args...)
+#define printk_dbg(fmt, args...) \
+do { \
+ /* do nothing but check printf format */ \
+ if (0) \
+ printk(fmt, ## args); \
+} while (0)
#endif
loff_t vfs_lib_ring_buffer_no_llseek(struct file *file, loff_t offset,
__free_page(pbuf->page);
}
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0))
static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
.release = lib_ring_buffer_pipe_buf_release,
.try_steal = generic_pipe_buf_try_steal,
.get = generic_pipe_buf_get
};
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,1,0))
static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
.confirm = generic_pipe_buf_confirm,
.release = lib_ring_buffer_pipe_buf_release,
.steal = generic_pipe_buf_steal,
.get = generic_pipe_buf_get
};
-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = {
.can_merge = 0,
.confirm = generic_pipe_buf_confirm,
struct pipe_inode_info *pipe,
size_t len,
unsigned int flags,
- struct lib_ring_buffer *buf)
+ struct lttng_kernel_ring_buffer *buf)
{
- struct channel *chan = buf->backend.chan;
- const struct lib_ring_buffer_config *config = &chan->backend.config;
+ struct lttng_kernel_ring_buffer_channel *chan = buf->backend.chan;
+ const struct lttng_kernel_ring_buffer_config *config = &chan->backend.config;
unsigned int poff, subbuf_pages, nr_pages;
struct page *pages[PIPE_DEF_BUFFERS];
struct partial_page partial[PIPE_DEF_BUFFERS];
.pages = pages,
.nr_pages = 0,
.partial = partial,
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
+#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(4,12,0))
.flags = flags,
#endif
.ops = &ring_buffer_pipe_buf_ops,
nr_pages = min_t(unsigned int, subbuf_pages, PIPE_DEF_BUFFERS);
roffset = consumed_old & PAGE_MASK;
poff = consumed_old & ~PAGE_MASK;
- printk_dbg(KERN_DEBUG "SPLICE actor len %zu pos %zd write_pos %ld\n",
+ printk_dbg(KERN_DEBUG "LTTng: SPLICE actor len %zu pos %zd write_pos %ld\n",
len, (ssize_t)*ppos, lib_ring_buffer_get_offset(config, buf));
for (; spd.nr_pages < nr_pages; spd.nr_pages++) {
if (!len)
break;
- printk_dbg(KERN_DEBUG "SPLICE actor loop len %zu roffset %ld\n",
+ printk_dbg(KERN_DEBUG "LTTng: SPLICE actor loop len %zu roffset %ld\n",
len, roffset);
/*
ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos,
struct pipe_inode_info *pipe, size_t len,
unsigned int flags,
- struct lib_ring_buffer *buf)
+ struct lttng_kernel_ring_buffer *buf)
{
- struct channel *chan = buf->backend.chan;
- const struct lib_ring_buffer_config *config = &chan->backend.config;
+ struct lttng_kernel_ring_buffer_channel *chan = buf->backend.chan;
+ const struct lttng_kernel_ring_buffer_config *config = &chan->backend.config;
ssize_t spliced;
int ret;
ret = 0;
spliced = 0;
- printk_dbg(KERN_DEBUG "SPLICE read len %zu pos %zd\n", len,
+ printk_dbg(KERN_DEBUG "LTTng: SPLICE read len %zu pos %zd\n", len,
(ssize_t)*ppos);
while (len && !spliced) {
ret = subbuf_splice_actor(in, ppos, pipe, len, flags, buf);
- printk_dbg(KERN_DEBUG "SPLICE read loop ret %d\n", ret);
+ printk_dbg(KERN_DEBUG "LTTng: SPLICE read loop ret %d\n", ret);
if (ret < 0)
break;
else if (!ret) {
struct pipe_inode_info *pipe, size_t len,
unsigned int flags)
{
- struct lib_ring_buffer *buf = in->private_data;
+ struct lttng_kernel_ring_buffer *buf = in->private_data;
return lib_ring_buffer_splice_read(in, ppos, pipe, len, flags, buf);
}