Lines Matching refs:bs

277 	struct snd_dbuf *bs = c->bufsoft;
283 if (sndbuf_getprevtotal(bs) < c->lw)
286 delta = sndbuf_gettotal(bs) - sndbuf_getprevtotal(bs);
289 delta = sndbuf_getfree(bs);
291 delta = sndbuf_getready(bs);
308 struct snd_dbuf *bs;
313 bs = c->bufsoft;
316 if (SEL_WAITING(sndbuf_getsel(bs)) && chn_polltrigger(c))
317 selwakeuppri(sndbuf_getsel(bs), PRIBIO);
397 struct snd_dbuf *bs = c->bufsoft;
403 sndbuf_acquire(bs, NULL, sndbuf_getfree(bs));
407 imax(0, sndbuf_xbytes(sndbuf_getsize(bs), bs, b) -
411 sndbuf_feed(bs, b, c, c->feeder, amt);
463 struct snd_dbuf *bs = c->bufsoft;
473 sz = min(buf->uio_resid, sndbuf_getfree(bs));
481 p = sndbuf_getfreeptr(bs);
482 t = min(sz, sndbuf_getsize(bs) - p);
483 off = sndbuf_getbufofs(bs, p);
488 sndbuf_acquire(bs, NULL, t);
531 struct snd_dbuf *bs = c->bufsoft;
537 sndbuf_dispose(bs, NULL, sndbuf_getready(bs));
539 amt = sndbuf_getfree(bs);
541 sndbuf_feed(b, bs, c, c->feeder, amt);
549 if (sndbuf_getready(bs) > 0)
593 struct snd_dbuf *bs = c->bufsoft;
611 sz = min(buf->uio_resid, sndbuf_getready(bs));
619 p = sndbuf_getreadyptr(bs);
620 t = min(sz, sndbuf_getsize(bs) - p);
621 off = sndbuf_getbufofs(bs, p);
626 sndbuf_dispose(bs, NULL, t);
680 struct snd_dbuf *bs = c->bufsoft;
695 i = sndbuf_getfree(bs);
698 if (sndbuf_getfree(bs) == 0) {
705 i = sndbuf_xbytes(sndbuf_getready(bs), bs, pb);
729 sndbuf_xbytes(sndbuf_getsize(bs), bs, b));
755 struct snd_dbuf *bs = c->bufsoft;
759 sndbuf_reset(bs);
770 struct snd_dbuf *b, *bs;
779 bs = c->bufsoft;
782 (threshold < 1 && sndbuf_getready(bs) < 1))
787 if (threshold > 0 || sndbuf_getready(bs) > 0) {
797 minflush = threshold + sndbuf_xbytes(sndbuf_getready(b), b, bs);
801 if (syncdelay < 0 && (threshold > 0 || sndbuf_getready(bs) > 0))
802 minflush += sndbuf_xbytes(sndbuf_getsize(b), b, bs);
810 minflush += (sndbuf_getalign(bs) * sndbuf_getspd(bs) *
813 minflush -= minflush % sndbuf_getalign(bs);
816 threshold = min(minflush, sndbuf_getfree(bs));
817 sndbuf_clear(bs, threshold);
818 sndbuf_acquire(bs, NULL, threshold);
822 resid = sndbuf_getready(bs);
835 count = sndbuf_xbytes(minflush + resid, bs, b) / blksz;
852 resid = sndbuf_getready(bs);
872 if (minflush > 0 && sndbuf_getfree(bs) > 0) {
874 sndbuf_getfree(bs));
875 sndbuf_clear(bs, threshold);
876 sndbuf_acquire(bs, NULL, threshold);
877 resid = sndbuf_getready(bs);
901 struct snd_dbuf *bs = c->bufsoft;
917 selrecord(td, sndbuf_getsel(bs));
933 struct snd_dbuf *bs = c->bufsoft;
946 missing = sndbuf_getready(bs);
1193 struct snd_dbuf *b, *bs;
1202 bs = NULL;
1214 bs = sndbuf_create(c->dev, c->name, "secondary", c);
1215 if (bs == NULL)
1233 sndbuf_setup(bs, NULL, 0);
1236 c->bufsoft = bs;
1271 sndbuf_setfmt(bs, c->format);
1272 sndbuf_setspd(bs, c->speed);
1280 bs->sl = sndbuf_getmaxsize(bs);
1281 bs->shadbuf = malloc(bs->sl, M_DEVBUF, M_NOWAIT);
1282 if (bs->shadbuf == NULL) {
1295 if (bs)
1296 sndbuf_destroy(bs);
1313 struct snd_dbuf *bs = c->bufsoft;
1324 sndbuf_destroy(bs);
1737 struct snd_dbuf *b, *bs, *pb;
1760 bs = c->bufsoft;
1764 (blksz < 16 || blksz < sndbuf_getalign(bs) || blkcnt < 2 ||
1768 chn_calclatency(c->direction, latency, sndbuf_getalign(bs),
1769 sndbuf_getalign(bs) * sndbuf_getspd(bs), CHN_2NDBUFMAXSIZE,
1776 blksz = sndbuf_getblksz(bs);
1777 blkcnt = sndbuf_getblkcnt(bs);
1790 sblksz = round_blksz(blksz, sndbuf_getalign(bs));
1803 sndbuf_xbytes(sndbuf_getsize(pb), pb, bs) : 0;
1806 sndbuf_xbytes(sndbuf_getblksz(pb), pb, bs) * 2 : 0;
1811 hblksz = round_blksz(sndbuf_xbytes(sblksz, bs, b),
1813 hblkcnt = round_pow2(sndbuf_getblkcnt(bs));
1849 sndbuf_xbytes(sndbuf_getblksz(b), b, bs),
1850 sndbuf_getalign(bs));
1863 limit = sndbuf_xbytes(sndbuf_getblksz(b), b, bs) * 2;
1887 sblksz -= sblksz % sndbuf_getalign(bs);
1889 if (sndbuf_getblkcnt(bs) != sblkcnt || sndbuf_getblksz(bs) != sblksz ||
1890 sndbuf_getsize(bs) != (sblkcnt * sblksz)) {
1891 ret = sndbuf_remalloc(bs, sblkcnt, sblksz);
1902 c->timeout = ((u_int64_t)hz * sndbuf_getsize(bs)) /
1903 ((u_int64_t)sndbuf_getspd(bs) * sndbuf_getalign(bs));
1913 c->lw = sndbuf_getblksz(bs);
1918 "b[%d/%d/%d] bs[%d/%d/%d] limit=%d\n",
1924 sndbuf_getsize(bs), sndbuf_getblksz(bs),
1925 sndbuf_getblkcnt(bs), limit);