Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
C
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566/* SPDX-License-Identifier: GPL-2.0 */#ifndef _LINUX_SIMPLE_RING_BUFFER_H#define _LINUX_SIMPLE_RING_BUFFER_H
#include <linux/list.h>#include <linux/ring_buffer.h>#include <linux/ring_buffer_types.h>#include <linux/types.h>
/* * Ideally those struct would stay private but the caller needs to know * the allocation size for simple_ring_buffer_init(). */struct simple_buffer_page { struct list_head link; struct buffer_data_page *page; u64 entries; u32 write; u32 id;};
struct simple_rb_per_cpu { struct simple_buffer_page *tail_page; struct simple_buffer_page *reader_page; struct simple_buffer_page *head_page; struct simple_buffer_page *bpages; struct trace_buffer_meta *meta; u32 nr_pages;
#define SIMPLE_RB_UNAVAILABLE 0#define SIMPLE_RB_READY 1#define SIMPLE_RB_WRITING 2 u32 status;
u64 last_overrun; u64 write_stamp;
struct simple_rb_cbs *cbs;};
int simple_ring_buffer_init(struct simple_rb_per_cpu *cpu_buffer, struct simple_buffer_page *bpages, const struct ring_buffer_desc *desc);
void simple_ring_buffer_unload(struct simple_rb_per_cpu *cpu_buffer);
void *simple_ring_buffer_reserve(struct simple_rb_per_cpu *cpu_buffer, unsigned long length, u64 timestamp);
void simple_ring_buffer_commit(struct simple_rb_per_cpu *cpu_buffer);
int simple_ring_buffer_enable_tracing(struct simple_rb_per_cpu *cpu_buffer, bool enable);
int simple_ring_buffer_reset(struct simple_rb_per_cpu *cpu_buffer);
int simple_ring_buffer_swap_reader_page(struct simple_rb_per_cpu *cpu_buffer);
int simple_ring_buffer_init_mm(struct simple_rb_per_cpu *cpu_buffer, struct simple_buffer_page *bpages, const struct ring_buffer_desc *desc, void *(*load_page)(unsigned long va), void (*unload_page)(void *va));
void simple_ring_buffer_unload_mm(struct simple_rb_per_cpu *cpu_buffer, void (*unload_page)(void *));#endif