mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 10:46:33 +00:00
4ecaf7e98a
To prevent conflicts with other ioctl numbers to allow strace to have an idea of what is happening, add the range of ioctls for the trace buffer mapping from _IO("T", 0x1) to the range of "R" 0x20 - 0x2F. Link: https://lore.kernel.org/linux-trace-kernel/20240630105322.GA17573@altlinux.org/ Link: https://lore.kernel.org/linux-trace-kernel/20240630213626.GA23566@altlinux.org/ Cc: Jonathan Corbet <corbet@lwn.net> Fixes: cf9f0f7c4c5bb ("tracing: Allow user-space mapping of the ring-buffer") Link: https://lore.kernel.org/20240702153354.367861db@rorschach.local.home Reported-by: "Dmitry V. Levin" <ldv@strace.io> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
49 lines
1.3 KiB
C
49 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
#ifndef _TRACE_MMAP_H_
|
|
#define _TRACE_MMAP_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
/**
|
|
* struct trace_buffer_meta - Ring-buffer Meta-page description
|
|
* @meta_page_size: Size of this meta-page.
|
|
* @meta_struct_len: Size of this structure.
|
|
* @subbuf_size: Size of each sub-buffer.
|
|
* @nr_subbufs: Number of subbfs in the ring-buffer, including the reader.
|
|
* @reader.lost_events: Number of events lost at the time of the reader swap.
|
|
* @reader.id: subbuf ID of the current reader. ID range [0 : @nr_subbufs - 1]
|
|
* @reader.read: Number of bytes read on the reader subbuf.
|
|
* @flags: Placeholder for now, 0 until new features are supported.
|
|
* @entries: Number of entries in the ring-buffer.
|
|
* @overrun: Number of entries lost in the ring-buffer.
|
|
* @read: Number of entries that have been read.
|
|
* @Reserved1: Internal use only.
|
|
* @Reserved2: Internal use only.
|
|
*/
|
|
struct trace_buffer_meta {
|
|
__u32 meta_page_size;
|
|
__u32 meta_struct_len;
|
|
|
|
__u32 subbuf_size;
|
|
__u32 nr_subbufs;
|
|
|
|
struct {
|
|
__u64 lost_events;
|
|
__u32 id;
|
|
__u32 read;
|
|
} reader;
|
|
|
|
__u64 flags;
|
|
|
|
__u64 entries;
|
|
__u64 overrun;
|
|
__u64 read;
|
|
|
|
__u64 Reserved1;
|
|
__u64 Reserved2;
|
|
};
|
|
|
|
#define TRACE_MMAP_IOCTL_GET_READER _IO('R', 0x20)
|
|
|
|
#endif /* _TRACE_MMAP_H_ */
|