#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/input.h>
#include <linux/input/mt.h>
#include <linux/slab.h>
#include <asm/xen/hypervisor.h>
#include <xen/xen.h>
#include <xen/events.h>
#include <xen/page.h>
#include <xen/grant_table.h>
#include <xen/interface/grant_table.h>
#include <xen/interface/io/fbif.h>
#include <xen/interface/io/kbdif.h>
#include <xen/xenbus.h>
#include <xen/platform_pci.h>
struct xenkbd_info { … };
enum { … };
static int ptr_size[KPARAM_CNT] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
static void xenkbd_remove(struct xenbus_device *);
static int xenkbd_connect_backend(struct xenbus_device *, struct xenkbd_info *);
static void xenkbd_disconnect_backend(struct xenkbd_info *);
static void xenkbd_handle_motion_event(struct xenkbd_info *info,
struct xenkbd_motion *motion)
{ … }
static void xenkbd_handle_position_event(struct xenkbd_info *info,
struct xenkbd_position *pos)
{ … }
static void xenkbd_handle_key_event(struct xenkbd_info *info,
struct xenkbd_key *key)
{ … }
static void xenkbd_handle_mt_event(struct xenkbd_info *info,
struct xenkbd_mtouch *mtouch)
{ … }
static void xenkbd_handle_event(struct xenkbd_info *info,
union xenkbd_in_event *event)
{ … }
static irqreturn_t input_handler(int rq, void *dev_id)
{ … }
static int xenkbd_probe(struct xenbus_device *dev,
const struct xenbus_device_id *id)
{ … }
static int xenkbd_resume(struct xenbus_device *dev)
{ … }
static void xenkbd_remove(struct xenbus_device *dev)
{ … }
static int xenkbd_connect_backend(struct xenbus_device *dev,
struct xenkbd_info *info)
{ … }
static void xenkbd_disconnect_backend(struct xenkbd_info *info)
{ … }
static void xenkbd_backend_changed(struct xenbus_device *dev,
enum xenbus_state backend_state)
{ … }
static const struct xenbus_device_id xenkbd_ids[] = …;
static struct xenbus_driver xenkbd_driver = …;
static int __init xenkbd_init(void)
{ … }
static void __exit xenkbd_cleanup(void)
{ … }
module_init(…) …;
module_exit(xenkbd_cleanup);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;