17 #include <linux/sched.h>
18 #include <linux/capability.h>
21 #include <asm/uaccess.h>
29 static unsigned long buffer_opened;
32 static unsigned long buffer_size;
33 static unsigned long buffer_watershed;
34 static size_t buffer_pos;
55 if (buffer_pos == buffer_size) {
61 if (++buffer_pos == buffer_size - buffer_watershed) {
90 if (buffer_watershed >= buffer_size)
148 static int event_buffer_release(
struct inode *inode,
struct file *file)
160 static ssize_t event_buffer_read(
struct file *file,
char __user *
buf,
164 size_t const max = buffer_size *
sizeof(
unsigned long);
167 if (count != max || *offset)
191 count = buffer_pos *
sizeof(
unsigned long);
205 .open = event_buffer_open,
206 .release = event_buffer_release,
207 .read = event_buffer_read,