#include <linux/delay.h>
#include <linux/module.h>
#include <xen/page.h>
#include <xen/platform_pci.h>
#include <xen/xen.h>
#include <xen/xenbus.h>
#include <xen/xen-front-pgdir-shbuf.h>
#include <xen/interface/io/sndif.h>
#include "xen_snd_front.h"
#include "xen_snd_front_alsa.h"
#include "xen_snd_front_evtchnl.h"
static struct xensnd_req *
be_stream_prepare_req(struct xen_snd_front_evtchnl *evtchnl, u8 operation)
{ … }
static int be_stream_do_io(struct xen_snd_front_evtchnl *evtchnl)
{ … }
static int be_stream_wait_io(struct xen_snd_front_evtchnl *evtchnl)
{ … }
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)
{ … }
static void xen_snd_drv_fini(struct xen_snd_front_info *front_info)
{ … }
static int sndback_initwait(struct xen_snd_front_info *front_info)
{ … }
static int sndback_connect(struct xen_snd_front_info *front_info)
{ … }
static void sndback_disconnect(struct xen_snd_front_info *front_info)
{ … }
static void sndback_changed(struct xenbus_device *xb_dev,
enum xenbus_state backend_state)
{ … }
static int xen_drv_probe(struct xenbus_device *xb_dev,
const struct xenbus_device_id *id)
{ … }
static void xen_drv_remove(struct xenbus_device *dev)
{ … }
static const struct xenbus_device_id xen_drv_ids[] = …;
static struct xenbus_driver xen_driver = …;
static int __init xen_drv_init(void)
{ … }
static void __exit xen_drv_fini(void)
{ … }
module_init(…) …;
module_exit(xen_drv_fini);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;