#include <xen/events.h>
#include <xen/grant_table.h>
#include <xen/xen.h>
#include <xen/xenbus.h>
#include <xen/interface/io/9pfs.h>
#include <linux/module.h>
#include <linux/spinlock.h>
#include <net/9p/9p.h>
#include <net/9p/client.h>
#include <net/9p/transport.h>
#define XEN_9PFS_NUM_RINGS …
#define XEN_9PFS_RING_ORDER …
#define XEN_9PFS_RING_SIZE(ring) …
struct xen_9pfs_header { … } __attribute__((packed));
struct xen_9pfs_dataring { … };
struct xen_9pfs_front_priv { … };
static LIST_HEAD(xen_9pfs_devs);
static DEFINE_RWLOCK(xen_9pfs_lock);
static int p9_xen_cancel(struct p9_client *client, struct p9_req_t *req)
{ … }
static int p9_xen_create(struct p9_client *client, const char *addr, char *args)
{ … }
static void p9_xen_close(struct p9_client *client)
{ … }
static bool p9_xen_write_todo(struct xen_9pfs_dataring *ring, RING_IDX size)
{ … }
static int p9_xen_request(struct p9_client *client, struct p9_req_t *p9_req)
{ … }
static void p9_xen_response(struct work_struct *work)
{ … }
static irqreturn_t xen_9pfs_front_event_handler(int irq, void *r)
{ … }
static struct p9_trans_module p9_xen_trans = …;
static const struct xenbus_device_id xen_9pfs_front_ids[] = …;
static void xen_9pfs_front_free(struct xen_9pfs_front_priv *priv)
{ … }
static void xen_9pfs_front_remove(struct xenbus_device *dev)
{ … }
static int xen_9pfs_front_alloc_dataring(struct xenbus_device *dev,
struct xen_9pfs_dataring *ring,
unsigned int order)
{ … }
static int xen_9pfs_front_init(struct xenbus_device *dev)
{ … }
static int xen_9pfs_front_probe(struct xenbus_device *dev,
const struct xenbus_device_id *id)
{ … }
static int xen_9pfs_front_resume(struct xenbus_device *dev)
{ … }
static void xen_9pfs_front_changed(struct xenbus_device *dev,
enum xenbus_state backend_state)
{ … }
static struct xenbus_driver xen_9pfs_front_driver = …;
static int __init p9_trans_xen_init(void)
{ … }
module_init(…) …;
MODULE_ALIAS_9P(…) …;
static void __exit p9_trans_xen_exit(void)
{ … }
module_exit(p9_trans_xen_exit);
MODULE_ALIAS(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;