xen_snd_front.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: GPL-2.0 OR MIT */
  2. /*
  3. * Xen para-virtual sound device
  4. *
  5. * Copyright (C) 2016-2018 EPAM Systems Inc.
  6. *
  7. * Author: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
  8. */
  9. #ifndef __XEN_SND_FRONT_H
  10. #define __XEN_SND_FRONT_H
  11. #include "xen_snd_front_cfg.h"
  12. struct xen_snd_front_card_info;
  13. struct xen_snd_front_evtchnl;
  14. struct xen_snd_front_evtchnl_pair;
  15. struct xen_front_pgdir_shbuf;
  16. struct xensnd_query_hw_param;
  17. struct xen_snd_front_info {
  18. struct xenbus_device *xb_dev;
  19. struct xen_snd_front_card_info *card_info;
  20. int num_evt_pairs;
  21. struct xen_snd_front_evtchnl_pair *evt_pairs;
  22. struct xen_front_cfg_card cfg;
  23. };
  24. int xen_snd_front_stream_query_hw_param(struct xen_snd_front_evtchnl *evtchnl,
  25. struct xensnd_query_hw_param *hw_param_req,
  26. struct xensnd_query_hw_param *hw_param_resp);
  27. int xen_snd_front_stream_prepare(struct xen_snd_front_evtchnl *evtchnl,
  28. struct xen_front_pgdir_shbuf *shbuf,
  29. u8 format, unsigned int channels,
  30. unsigned int rate, u32 buffer_sz,
  31. u32 period_sz);
  32. int xen_snd_front_stream_close(struct xen_snd_front_evtchnl *evtchnl);
  33. int xen_snd_front_stream_write(struct xen_snd_front_evtchnl *evtchnl,
  34. unsigned long pos, unsigned long count);
  35. int xen_snd_front_stream_read(struct xen_snd_front_evtchnl *evtchnl,
  36. unsigned long pos, unsigned long count);
  37. int xen_snd_front_stream_trigger(struct xen_snd_front_evtchnl *evtchnl,
  38. int type);
  39. #endif /* __XEN_SND_FRONT_H */