linux/drivers/video/fbdev/core/fb_defio.c

/*
 *  linux/drivers/video/fb_defio.c
 *
 *  Copyright (C) 2006 Jaya Kumar
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License. See the file COPYING in the main directory of this archive
 * for more details.
 */

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/fb.h>
#include <linux/list.h>

/* to support deferred IO */
#include <linux/rmap.h>
#include <linux/pagemap.h>

static struct page *fb_deferred_io_get_page(struct fb_info *info, unsigned long offs)
{}

static struct fb_deferred_io_pageref *fb_deferred_io_pageref_lookup(struct fb_info *info,
								    unsigned long offset,
								    struct page *page)
{}

static void fb_deferred_io_pageref_clear(struct fb_deferred_io_pageref *pageref)
{}

static struct fb_deferred_io_pageref *fb_deferred_io_pageref_get(struct fb_info *info,
								 unsigned long offset,
								 struct page *page)
{}

static void fb_deferred_io_pageref_put(struct fb_deferred_io_pageref *pageref,
				       struct fb_info *info)
{}

/* this is to find and return the vmalloc-ed fb pages */
static vm_fault_t fb_deferred_io_fault(struct vm_fault *vmf)
{}

int fb_deferred_io_fsync(struct file *file, loff_t start, loff_t end, int datasync)
{}
EXPORT_SYMBOL_GPL();

/*
 * Adds a page to the dirty list. Call this from struct
 * vm_operations_struct.page_mkwrite.
 */
static vm_fault_t fb_deferred_io_track_page(struct fb_info *info, unsigned long offset,
					    struct page *page)
{}

/*
 * fb_deferred_io_page_mkwrite - Mark a page as written for deferred I/O
 * @fb_info: The fbdev info structure
 * @vmf: The VM fault
 *
 * This is a callback we get when userspace first tries to
 * write to the page. We schedule a workqueue. That workqueue
 * will eventually mkclean the touched pages and execute the
 * deferred framebuffer IO. Then if userspace touches a page
 * again, we repeat the same scheme.
 *
 * Returns:
 * VM_FAULT_LOCKED on success, or a VM_FAULT error otherwise.
 */
static vm_fault_t fb_deferred_io_page_mkwrite(struct fb_info *info, struct vm_fault *vmf)
{}

/* vm_ops->page_mkwrite handler */
static vm_fault_t fb_deferred_io_mkwrite(struct vm_fault *vmf)
{}

static const struct vm_operations_struct fb_deferred_io_vm_ops =;

static const struct address_space_operations fb_deferred_io_aops =;

int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma)
{}
EXPORT_SYMBOL_GPL();

/* workqueue callback */
static void fb_deferred_io_work(struct work_struct *work)
{}

int fb_deferred_io_init(struct fb_info *info)
{}
EXPORT_SYMBOL_GPL();

void fb_deferred_io_open(struct fb_info *info,
			 struct inode *inode,
			 struct file *file)
{}
EXPORT_SYMBOL_GPL();

static void fb_deferred_io_lastclose(struct fb_info *info)
{}

void fb_deferred_io_release(struct fb_info *info)
{}
EXPORT_SYMBOL_GPL();

void fb_deferred_io_cleanup(struct fb_info *info)
{}
EXPORT_SYMBOL_GPL();