#include <linux/miscdevice.h>
#include <linux/module.h>
#include <linux/poll.h>
#include <linux/skbuff.h>
#include <linux/uaccess.h>
#include "qrtr.h"
struct qrtr_tun { … };
static int qrtr_tun_send(struct qrtr_endpoint *ep, struct sk_buff *skb)
{ … }
static int qrtr_tun_open(struct inode *inode, struct file *filp)
{ … }
static ssize_t qrtr_tun_read_iter(struct kiocb *iocb, struct iov_iter *to)
{ … }
static ssize_t qrtr_tun_write_iter(struct kiocb *iocb, struct iov_iter *from)
{ … }
static __poll_t qrtr_tun_poll(struct file *filp, poll_table *wait)
{ … }
static int qrtr_tun_release(struct inode *inode, struct file *filp)
{ … }
static const struct file_operations qrtr_tun_ops = …;
static struct miscdevice qrtr_tun_miscdev = …;
static int __init qrtr_tun_init(void)
{ … }
static void __exit qrtr_tun_exit(void)
{ … }
module_init(…) …;
module_exit(qrtr_tun_exit);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;