#include <linux/dma-fence-unwrap.h>
#include <linux/export.h>
#include <linux/file.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/poll.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/anon_inodes.h>
#include <linux/sync_file.h>
#include <uapi/linux/sync_file.h>
static const struct file_operations sync_file_fops;
static struct sync_file *sync_file_alloc(void)
{ … }
static void fence_check_cb_func(struct dma_fence *f, struct dma_fence_cb *cb)
{ … }
struct sync_file *sync_file_create(struct dma_fence *fence)
{ … }
EXPORT_SYMBOL(…);
static struct sync_file *sync_file_fdget(int fd)
{ … }
struct dma_fence *sync_file_get_fence(int fd)
{ … }
EXPORT_SYMBOL(…);
char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len)
{ … }
static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
struct sync_file *b)
{ … }
static int sync_file_release(struct inode *inode, struct file *file)
{ … }
static __poll_t sync_file_poll(struct file *file, poll_table *wait)
{ … }
static long sync_file_ioctl_merge(struct sync_file *sync_file,
unsigned long arg)
{ … }
static int sync_fill_fence_info(struct dma_fence *fence,
struct sync_fence_info *info)
{ … }
static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
unsigned long arg)
{ … }
static int sync_file_ioctl_set_deadline(struct sync_file *sync_file,
unsigned long arg)
{ … }
static long sync_file_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{ … }
static const struct file_operations sync_file_fops = …;