ring-buffer: Introducing ring-buffer mapping functions
[linux-2.6-block.git] / include / uapi / linux / trace_mmap.h
diff --git a/include/uapi/linux/trace_mmap.h b/include/uapi/linux/trace_mmap.h
new file mode 100644 (file)
index 0000000..b682e99
--- /dev/null
@@ -0,0 +1,46 @@
+/* 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;
+};
+
+#endif /* _TRACE_MMAP_H_ */