diff options
Diffstat (limited to 'sound/xen/xen_snd_front.h')
| -rw-r--r-- | sound/xen/xen_snd_front.h | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/sound/xen/xen_snd_front.h b/sound/xen/xen_snd_front.h new file mode 100644 index 000000000000..a2ea2463bcc5 --- /dev/null +++ b/sound/xen/xen_snd_front.h @@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: GPL-2.0 OR MIT */ + +/* + * Xen para-virtual sound device + * + * Copyright (C) 2016-2018 EPAM Systems Inc. + * + * Author: Oleksandr Andrushchenko <[email protected]> + */ + +#ifndef __XEN_SND_FRONT_H +#define __XEN_SND_FRONT_H + +#include "xen_snd_front_cfg.h" + +struct xen_snd_front_card_info; +struct xen_snd_front_evtchnl; +struct xen_snd_front_evtchnl_pair; +struct xen_snd_front_shbuf; +struct xensnd_query_hw_param; + +struct xen_snd_front_info { +	struct xenbus_device *xb_dev; + +	struct xen_snd_front_card_info *card_info; + +	int num_evt_pairs; +	struct xen_snd_front_evtchnl_pair *evt_pairs; + +	struct xen_front_cfg_card cfg; +}; + +int xen_snd_front_stream_query_hw_param(struct xen_snd_front_evtchnl *evtchnl, +					struct xensnd_query_hw_param *hw_param_req, +					struct xensnd_query_hw_param *hw_param_resp); + +int xen_snd_front_stream_prepare(struct xen_snd_front_evtchnl *evtchnl, +				 struct xen_snd_front_shbuf *sh_buf, +				 u8 format, unsigned int channels, +				 unsigned int rate, u32 buffer_sz, +				 u32 period_sz); + +int xen_snd_front_stream_close(struct xen_snd_front_evtchnl *evtchnl); + +int xen_snd_front_stream_write(struct xen_snd_front_evtchnl *evtchnl, +			       unsigned long pos, unsigned long count); + +int xen_snd_front_stream_read(struct xen_snd_front_evtchnl *evtchnl, +			      unsigned long pos, unsigned long count); + +int xen_snd_front_stream_trigger(struct xen_snd_front_evtchnl *evtchnl, +				 int type); + +#endif /* __XEN_SND_FRONT_H */ |