#include <linux/module.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/major.h>
#include <linux/time.h>
#include <linux/sched/signal.h>
#include <linux/slab.h>
#include <linux/ioport.h>
#include <linux/fcntl.h>
#include <linux/delay.h>
#include <linux/skbuff.h>
#include <linux/proc_fs.h>
#include <linux/vmalloc.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/poll.h>
#include <linux/init.h>
#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/device.h>
#include <linux/pid_namespace.h>
#include <asm/io.h>
#include <linux/uaccess.h>
#include <linux/coda.h>
#include "coda_psdev.h"
#include "coda_linux.h"
#include "coda_int.h"
int coda_hard;
unsigned long coda_timeout = …;
struct venus_comm coda_comms[MAX_CODADEVS];
static struct class *coda_psdev_class;
static __poll_t coda_psdev_poll(struct file *file, poll_table * wait)
{ … }
static long coda_psdev_ioctl(struct file * filp, unsigned int cmd, unsigned long arg)
{ … }
static ssize_t coda_psdev_write(struct file *file, const char __user *buf,
size_t nbytes, loff_t *off)
{ … }
static ssize_t coda_psdev_read(struct file * file, char __user * buf,
size_t nbytes, loff_t *off)
{ … }
static int coda_psdev_open(struct inode * inode, struct file * file)
{ … }
static int coda_psdev_release(struct inode * inode, struct file * file)
{ … }
static const struct file_operations coda_psdev_fops = …;
static int __init init_coda_psdev(void)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_CHARDEV_MAJOR(…);
MODULE_LICENSE(…) …;
MODULE_VERSION(…) …;
static int __init init_coda(void)
{ … }
static void __exit exit_coda(void)
{ … }
module_init(…) …;
module_exit(exit_coda);