Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at ee9dce44362b2d8132c32964656ab6dff7dfbc6a 65 lines 1.9 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_SIMPLE_RING_BUFFER_H 3#define _LINUX_SIMPLE_RING_BUFFER_H 4 5#include <linux/list.h> 6#include <linux/ring_buffer.h> 7#include <linux/ring_buffer_types.h> 8#include <linux/types.h> 9 10/* 11 * Ideally those struct would stay private but the caller needs to know 12 * the allocation size for simple_ring_buffer_init(). 13 */ 14struct simple_buffer_page { 15 struct list_head link; 16 struct buffer_data_page *page; 17 u64 entries; 18 u32 write; 19 u32 id; 20}; 21 22struct simple_rb_per_cpu { 23 struct simple_buffer_page *tail_page; 24 struct simple_buffer_page *reader_page; 25 struct simple_buffer_page *head_page; 26 struct simple_buffer_page *bpages; 27 struct trace_buffer_meta *meta; 28 u32 nr_pages; 29 30#define SIMPLE_RB_UNAVAILABLE 0 31#define SIMPLE_RB_READY 1 32#define SIMPLE_RB_WRITING 2 33 u32 status; 34 35 u64 last_overrun; 36 u64 write_stamp; 37 38 struct simple_rb_cbs *cbs; 39}; 40 41int simple_ring_buffer_init(struct simple_rb_per_cpu *cpu_buffer, struct simple_buffer_page *bpages, 42 const struct ring_buffer_desc *desc); 43 44void simple_ring_buffer_unload(struct simple_rb_per_cpu *cpu_buffer); 45 46void *simple_ring_buffer_reserve(struct simple_rb_per_cpu *cpu_buffer, unsigned long length, 47 u64 timestamp); 48 49void simple_ring_buffer_commit(struct simple_rb_per_cpu *cpu_buffer); 50 51int simple_ring_buffer_enable_tracing(struct simple_rb_per_cpu *cpu_buffer, bool enable); 52 53int simple_ring_buffer_reset(struct simple_rb_per_cpu *cpu_buffer); 54 55int simple_ring_buffer_swap_reader_page(struct simple_rb_per_cpu *cpu_buffer); 56 57int simple_ring_buffer_init_mm(struct simple_rb_per_cpu *cpu_buffer, 58 struct simple_buffer_page *bpages, 59 const struct ring_buffer_desc *desc, 60 void *(*load_page)(unsigned long va), 61 void (*unload_page)(void *va)); 62 63void simple_ring_buffer_unload_mm(struct simple_rb_per_cpu *cpu_buffer, 64 void (*unload_page)(void *)); 65#endif