#include <linux/types.h>
#include <linux/errno.h>
#include <linux/time.h>
#include <linux/kernel.h>
#include <linux/poll.h>
#include <linux/proc_fs.h>
#include <linux/fs.h>
#include <linux/syslog.h>
#include <asm/io.h>
static int kmsg_open(struct inode * inode, struct file * file)
{ … }
static int kmsg_release(struct inode * inode, struct file * file)
{ … }
static ssize_t kmsg_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos)
{ … }
static __poll_t kmsg_poll(struct file *file, poll_table *wait)
{ … }
static const struct proc_ops kmsg_proc_ops = …;
static int __init proc_kmsg_init(void)
{ … }
fs_initcall(proc_kmsg_init);