#include <linux/refcount.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/time.h>
#include <linux/file.h>
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/stat.h>
#include <linux/cred.h>
#include <linux/errno.h>
#include <linux/spinlock.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/uio.h>
#include <linux/splice.h>
#include <linux/coda.h>
#include "coda_psdev.h"
#include "coda_linux.h"
#include "coda_int.h"
struct coda_vm_ops { … };
static ssize_t
coda_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
{ … }
static ssize_t
coda_file_write_iter(struct kiocb *iocb, struct iov_iter *to)
{ … }
static ssize_t
coda_file_splice_read(struct file *coda_file, loff_t *ppos,
struct pipe_inode_info *pipe,
size_t len, unsigned int flags)
{ … }
static void
coda_vm_open(struct vm_area_struct *vma)
{ … }
static void
coda_vm_close(struct vm_area_struct *vma)
{ … }
static int
coda_file_mmap(struct file *coda_file, struct vm_area_struct *vma)
{ … }
int coda_open(struct inode *coda_inode, struct file *coda_file)
{ … }
int coda_release(struct inode *coda_inode, struct file *coda_file)
{ … }
int coda_fsync(struct file *coda_file, loff_t start, loff_t end, int datasync)
{ … }
const struct file_operations coda_file_operations = …;