X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lib%2Fringbuffer%2Fring_buffer_vfs.c;h=e5d6a70177467d55555bd125a5a748a78ab7c9de;hb=2df37e95fa4303ecc0db41334452665491533641;hp=dae73de398c5ea38dba90f0bd384d5f21f327d30;hpb=b3b8072b02b4f1917a0254577c48301e8f44c210;p=lttng-modules.git diff --git a/lib/ringbuffer/ring_buffer_vfs.c b/lib/ringbuffer/ring_buffer_vfs.c index dae73de3..e5d6a701 100644 --- a/lib/ringbuffer/ring_buffer_vfs.c +++ b/lib/ringbuffer/ring_buffer_vfs.c @@ -1,33 +1,21 @@ -/* +/* SPDX-License-Identifier: (GPL-2.0-only OR LGPL-2.1-only) + * * ring_buffer_vfs.c * * Ring Buffer VFS file operations. * * Copyright (C) 2010-2012 Mathieu Desnoyers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; only - * version 2.1 of the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include -#include "../../wrapper/ringbuffer/backend.h" -#include "../../wrapper/ringbuffer/frontend.h" -#include "../../wrapper/ringbuffer/vfs.h" -#include "../../wrapper/poll.h" +#include +#include +#include +#include +#include static int put_ulong(unsigned long val, unsigned long arg) { @@ -192,6 +180,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: @@ -269,6 +260,12 @@ long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, case RING_BUFFER_FLUSH: lib_ring_buffer_switch_remote(buf); return 0; + case RING_BUFFER_FLUSH_EMPTY: + lib_ring_buffer_switch_remote_empty(buf); + return 0; + case RING_BUFFER_CLEAR: + lib_ring_buffer_clear(buf); + return 0; default: return -ENOIOCTLCMD; } @@ -321,6 +318,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: @@ -414,6 +414,12 @@ long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, case RING_BUFFER_COMPAT_FLUSH: lib_ring_buffer_switch_remote(buf); return 0; + case RING_BUFFER_COMPAT_FLUSH_EMPTY: + lib_ring_buffer_switch_remote_empty(buf); + return 0; + case RING_BUFFER_COMPAT_CLEAR: + lib_ring_buffer_clear(buf); + return 0; default: return -ENOIOCTLCMD; } @@ -446,5 +452,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 "); +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);