39int vchan_passthrough(
struct pcm_channel *,
const char *);
40#define vchan_sync(c) vchan_passthrough(c, __func__)
45#define VCHAN_SYNC_REQUIRED(c) \
46 (((c)->flags & CHN_F_VIRTUAL) && (((c)->flags & CHN_F_DIRTY) || \
47 sndbuf_getfmt((c)->bufhard) != (c)->parentchannel->format || \
48 sndbuf_getspd((c)->bufhard) != (c)->parentchannel->speed))
55#define VCHAN_DEFAULT_FORMAT SND_FORMAT(AFMT_S16_LE, 2, 0)
56#define VCHAN_DEFAULT_RATE 48000
64#define VCHAN_SYSCTL_DATA(x, y) \
65 ((void *)((intptr_t)(((((x) + 1) & 0xfff) << 2) | \
66 (((VCHAN_##y) + 1) & 0x3))))
68#define VCHAN_SYSCTL_DATA_SIZE sizeof(void *)
69#define VCHAN_SYSCTL_UNIT(x) ((int)(((intptr_t)(x) >> 2) & 0xfff) - 1)
70#define VCHAN_SYSCTL_DIR(x) ((int)((intptr_t)(x) & 0x3) - 1)
int vchan_destroy(struct pcm_channel *)
void vchan_initsys(device_t)
int vchan_create(struct pcm_channel *, int)
int vchan_sync(struct pcm_channel *)