linux/drivers/video/fbdev/xen-fbfront.c

/*
 * Xen para-virtual frame buffer device
 *
 * Copyright (C) 2005-2006 Anthony Liguori <[email protected]>
 * Copyright (C) 2006-2008 Red Hat, Inc., Markus Armbruster <[email protected]>
 *
 *  Based on linux/drivers/video/q40fb.c
 *
 *  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.
 */

/*
 * TODO:
 *
 * Switch to grant tables when they become capable of dealing with the
 * frame buffer.
 */

#define pr_fmt(fmt)

#include <linux/console.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/fb.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/mm.h>

#include <asm/xen/hypervisor.h>

#include <xen/xen.h>
#include <xen/events.h>
#include <xen/page.h>
#include <xen/interface/io/fbif.h>
#include <xen/interface/io/protocols.h>
#include <xen/xenbus.h>
#include <xen/platform_pci.h>

struct xenfb_info {};

#define XENFB_DEFAULT_FB_LEN

enum {};
static int video[KPARAM_CNT] =;
module_param_array();
MODULE_PARM_DESC();

static void xenfb_make_preferred_console(void);
static void xenfb_remove(struct xenbus_device *);
static void xenfb_init_shared_page(struct xenfb_info *, struct fb_info *);
static int xenfb_connect_backend(struct xenbus_device *, struct xenfb_info *);
static void xenfb_disconnect_backend(struct xenfb_info *);

static void xenfb_send_event(struct xenfb_info *info,
			     union xenfb_out_event *event)
{}

static void xenfb_do_update(struct xenfb_info *info,
			    int x, int y, int w, int h)
{}

static void xenfb_do_resize(struct xenfb_info *info)
{}

static int xenfb_queue_full(struct xenfb_info *info)
{}

static void xenfb_handle_resize_dpy(struct xenfb_info *info)
{}

static void xenfb_refresh(struct xenfb_info *info,
			  int x1, int y1, int w, int h)
{}

static void xenfb_deferred_io(struct fb_info *fb_info, struct list_head *pagereflist)
{}

static struct fb_deferred_io xenfb_defio =;

static int xenfb_setcolreg(unsigned regno, unsigned red, unsigned green,
			   unsigned blue, unsigned transp,
			   struct fb_info *info)
{}

static int
xenfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{}

static int xenfb_set_par(struct fb_info *info)
{}

static void xenfb_defio_damage_range(struct fb_info *info, off_t off, size_t len)
{}

static void xenfb_defio_damage_area(struct fb_info *info, u32 x, u32 y,
				    u32 width, u32 height)
{}

FB_GEN_DEFAULT_DEFERRED_SYSMEM_OPS(xenfb,
				   xenfb_defio_damage_range,
				   xenfb_defio_damage_area)

static const struct fb_ops xenfb_fb_ops =;

static irqreturn_t xenfb_event_handler(int rq, void *dev_id)
{}

static int xenfb_probe(struct xenbus_device *dev,
		       const struct xenbus_device_id *id)
{}

static void xenfb_make_preferred_console(void)
{}

static int xenfb_resume(struct xenbus_device *dev)
{}

static void xenfb_remove(struct xenbus_device *dev)
{}

static unsigned long vmalloc_to_gfn(void *address)
{}

static void xenfb_init_shared_page(struct xenfb_info *info,
				   struct fb_info *fb_info)
{}

static int xenfb_connect_backend(struct xenbus_device *dev,
				 struct xenfb_info *info)
{}

static void xenfb_disconnect_backend(struct xenfb_info *info)
{}

static void xenfb_backend_changed(struct xenbus_device *dev,
				  enum xenbus_state backend_state)
{}

static const struct xenbus_device_id xenfb_ids[] =;

static struct xenbus_driver xenfb_driver =;

static int __init xenfb_init(void)
{}

static void __exit xenfb_cleanup(void)
{}

module_init();
module_exit(xenfb_cleanup);

MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS();