linux/drivers/gpu/drm/xen/xen_drm_front_evtchnl.h

/* SPDX-License-Identifier: GPL-2.0 OR MIT */

/*
 *  Xen para-virtual DRM device
 *
 * Copyright (C) 2016-2018 EPAM Systems Inc.
 *
 * Author: Oleksandr Andrushchenko <[email protected]>
 */

#ifndef __XEN_DRM_FRONT_EVTCHNL_H_
#define __XEN_DRM_FRONT_EVTCHNL_H_

#include <linux/completion.h>
#include <linux/types.h>

#include <xen/interface/io/ring.h>
#include <xen/interface/io/displif.h>

/*
 * All operations which are not connector oriented use this ctrl event channel,
 * e.g. fb_attach/destroy which belong to a DRM device, not to a CRTC.
 */
#define GENERIC_OP_EVT_CHNL

enum xen_drm_front_evtchnl_state {};

enum xen_drm_front_evtchnl_type {};

struct xen_drm_front_drm_info;

struct xen_drm_front_evtchnl {};

struct xen_drm_front_evtchnl_pair {};

int xen_drm_front_evtchnl_create_all(struct xen_drm_front_info *front_info);

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);

#endif /* __XEN_DRM_FRONT_EVTCHNL_H_ */