linux/fs/coda/psdev.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *      	An implementation of a loadable kernel mode driver providing
 *		multiple kernel/user space bidirectional communications links.
 *
 * 		Author: 	Alan Cox <[email protected]>
 * 
 *              Adapted to become the Linux 2.0 Coda pseudo device
 *              Peter  Braam  <[email protected]> 
 *              Michael Callahan <[email protected]>           
 *
 *              Changes for Linux 2.1
 *              Copyright (c) 1997 Carnegie-Mellon University
 */

#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"

/* statistics */
int           coda_hard;         /* allows signals during upcalls */
unsigned long coda_timeout =; /* .. secs, then signals will dequeue */


struct venus_comm coda_comms[MAX_CODADEVS];
static struct class *coda_psdev_class;

/*
 * Device operations
 */

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)
{}

/*
 *	Receive a message written by Venus to the psdev
 */
 
static ssize_t coda_psdev_write(struct file *file, const char __user *buf, 
				size_t nbytes, loff_t *off)
{}

/*
 *	Read a message from the kernel to Venus
 */

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);