#ifndef VIRTIO_SND_CARD_H
#define VIRTIO_SND_CARD_H
#include <linux/slab.h>
#include <linux/virtio.h>
#include <sound/core.h>
#include <uapi/linux/virtio_snd.h>
#include "virtio_ctl_msg.h"
#include "virtio_pcm.h"
#define VIRTIO_SND_CARD_DRIVER …
#define VIRTIO_SND_CARD_NAME …
#define VIRTIO_SND_PCM_NAME …
struct virtio_jack;
struct virtio_pcm_substream;
struct virtio_snd_queue { … };
struct virtio_kctl { … };
struct virtio_snd { … };
extern u32 virtsnd_msg_timeout_ms;
static inline struct virtio_snd_queue *
virtsnd_control_queue(struct virtio_snd *snd)
{ … }
static inline struct virtio_snd_queue *
virtsnd_event_queue(struct virtio_snd *snd)
{ … }
static inline struct virtio_snd_queue *
virtsnd_tx_queue(struct virtio_snd *snd)
{ … }
static inline struct virtio_snd_queue *
virtsnd_rx_queue(struct virtio_snd *snd)
{ … }
static inline struct virtio_snd_queue *
virtsnd_pcm_queue(struct virtio_pcm_substream *vss)
{ … }
int virtsnd_jack_parse_cfg(struct virtio_snd *snd);
int virtsnd_jack_build_devs(struct virtio_snd *snd);
void virtsnd_jack_event(struct virtio_snd *snd,
struct virtio_snd_event *event);
int virtsnd_chmap_parse_cfg(struct virtio_snd *snd);
int virtsnd_chmap_build_devs(struct virtio_snd *snd);
int virtsnd_kctl_parse_cfg(struct virtio_snd *snd);
int virtsnd_kctl_build_devs(struct virtio_snd *snd);
void virtsnd_kctl_event(struct virtio_snd *snd, struct virtio_snd_event *event);
#endif