linux/drivers/xen/evtchn.c

/******************************************************************************
 * evtchn.c
 *
 * Driver for receiving and demuxing event-channel signals.
 *
 * Copyright (c) 2004-2005, K A Fraser
 * Multi-process extensions Copyright (c) 2004, Steven Smith
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version 2
 * as published by the Free Software Foundation; or, when distributed
 * separately from the Linux kernel or incorporated into other
 * software packages, subject to the following license:
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this source file (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy, modify,
 * merge, publish, distribute, sublicense, and/or sell copies of the Software,
 * and to permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 */

#define pr_fmt(fmt)

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/miscdevice.h>
#include <linux/major.h>
#include <linux/proc_fs.h>
#include <linux/stat.h>
#include <linux/poll.h>
#include <linux/irq.h>
#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/cpu.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>

#include <xen/xen.h>
#include <xen/events.h>
#include <xen/evtchn.h>
#include <xen/xen-ops.h>
#include <asm/xen/hypervisor.h>

struct per_user_data {};

#define UNRESTRICTED_DOMID

struct user_evtchn {};

static void evtchn_free_ring(evtchn_port_t *ring)
{}

static unsigned int evtchn_ring_offset(struct per_user_data *u,
				       unsigned int idx)
{}

static evtchn_port_t *evtchn_ring_entry(struct per_user_data *u,
					unsigned int idx)
{}

static int add_evtchn(struct per_user_data *u, struct user_evtchn *evtchn)
{}

static void del_evtchn(struct per_user_data *u, struct user_evtchn *evtchn)
{}

static struct user_evtchn *find_evtchn(struct per_user_data *u,
				       evtchn_port_t port)
{}

static irqreturn_t evtchn_interrupt(int irq, void *data)
{}

static ssize_t evtchn_read(struct file *file, char __user *buf,
			   size_t count, loff_t *ppos)
{}

static ssize_t evtchn_write(struct file *file, const char __user *buf,
			    size_t count, loff_t *ppos)
{}

static int evtchn_resize_ring(struct per_user_data *u)
{}

static int evtchn_bind_to_user(struct per_user_data *u, evtchn_port_t port,
			       bool is_static)
{}

static void evtchn_unbind_from_user(struct per_user_data *u,
				    struct user_evtchn *evtchn)
{}

static long evtchn_ioctl(struct file *file,
			 unsigned int cmd, unsigned long arg)
{}

static __poll_t evtchn_poll(struct file *file, poll_table *wait)
{}

static int evtchn_fasync(int fd, struct file *filp, int on)
{}

static int evtchn_open(struct inode *inode, struct file *filp)
{}

static int evtchn_release(struct inode *inode, struct file *filp)
{}

static const struct file_operations evtchn_fops =;

static struct miscdevice evtchn_miscdev =;
static int __init evtchn_init(void)
{}

static void __exit evtchn_cleanup(void)
{}

module_init();
module_exit(evtchn_cleanup);

MODULE_DESCRIPTION();
MODULE_LICENSE();