#include <linux/errno.h>
#include <linux/irq.h>
#include <drm/drm_print.h>
#include <xen/xenbus.h>
#include <xen/events.h>
#include <xen/grant_table.h>
#include "xen_drm_front.h"
#include "xen_drm_front_evtchnl.h"
static irqreturn_t evtchnl_interrupt_ctrl(int irq, void *dev_id)
{ … }
static irqreturn_t evtchnl_interrupt_evt(int irq, void *dev_id)
{ … }
static void evtchnl_free(struct xen_drm_front_info *front_info,
struct xen_drm_front_evtchnl *evtchnl)
{ … }
static int evtchnl_alloc(struct xen_drm_front_info *front_info, int index,
struct xen_drm_front_evtchnl *evtchnl,
enum xen_drm_front_evtchnl_type type)
{ … }
int xen_drm_front_evtchnl_create_all(struct xen_drm_front_info *front_info)
{ … }
static int evtchnl_publish(struct xenbus_transaction xbt,
struct xen_drm_front_evtchnl *evtchnl,
const char *path, const char *node_ring,
const char *node_chnl)
{ … }
int xen_drm_front_evtchnl_publish_all(struct xen_drm_front_info *front_info)
{ … }
void xen_drm_front_evtchnl_flush(struct xen_drm_front_evtchnl *evtchnl)
{ … }
void xen_drm_front_evtchnl_set_state(struct xen_drm_front_info *front_info,
enum xen_drm_front_evtchnl_state state)
{ … }
void xen_drm_front_evtchnl_free_all(struct xen_drm_front_info *front_info)
{ … }