| /* SPDX-License-Identifier: GPL-2.0 OR MIT */ | 
 |  | 
 | /* | 
 |  * Xen para-virtual sound device | 
 |  * | 
 |  * Copyright (C) 2016-2018 EPAM Systems Inc. | 
 |  * | 
 |  * Author: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> | 
 |  */ | 
 |  | 
 | #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_front_pgdir_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_front_pgdir_shbuf *shbuf, | 
 | 				 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 */ |