Home | History | Annotate | Download | only in audio

Lines Matching defs:usrbuf

457 	char usrbuf[32];
487 snprintf(buf->usrbuf, sizeof(buf->usrbuf), " usr=%d/%d/H%d",
488 track->usrbuf.head, track->usrbuf.used, track->usrbuf_usedhigh);
1720 audio_ring_t *usrbuf = &track->usrbuf;
1723 "%s: device timeout, seq=%d, usrbuf=%d/H%d, outbuf=%d/%d\n",
1725 usrbuf->used, track->usrbuf_usedhigh,
2787 audio_ring_t *usrbuf;
2820 usrbuf = &track->usrbuf;
2828 "while resid=%zd input=%d/%d/%d usrbuf=%d/%d/C%d",
2831 usrbuf->head, usrbuf->used, usrbuf->capacity);
2838 empty = (input->used == 0 && usrbuf->used == 0);
2859 if (usrbuf->used == 0 && input->used > 0) {
2863 /* uiomove from usrbuf as many bytes as possible. */
2864 bytes = uimin(usrbuf->used, uio->uio_resid);
2865 error = uiomove((uint8_t *)usrbuf->mem + usrbuf->head, bytes,
2874 auring_take(usrbuf, bytes);
2875 TRACET(3, track, "uiomove(len=%d) usrbuf=%d/%d/C%d",
2877 usrbuf->head, usrbuf->used, usrbuf->capacity);
2908 audio_ring_t *usrbuf;
2945 usrbuf = &track->usrbuf;
2953 TRACET(3, track, "while resid=%zd usrbuf=%d/%d/H%d",
2955 usrbuf->head, usrbuf->used, track->usrbuf_usedhigh);
2962 full = (usrbuf->used >= track->usrbuf_usedhigh &&
2974 TRACET(3, track, "sleep usrbuf=%d/H%d",
2975 usrbuf->used, track->usrbuf_usedhigh);
2986 /* uiomove to usrbuf as many bytes as possible. */
2987 bytes = uimin(track->usrbuf_usedhigh - usrbuf->used,
2990 int tail = auring_tail(usrbuf);
2991 int len = uimin(bytes, usrbuf->capacity - tail);
2992 error = uiomove((uint8_t *)usrbuf->mem + tail, len,
3001 auring_push(usrbuf, len);
3002 TRACET(3, track, "uiomove(len=%d) usrbuf=%d/%d/C%d",
3004 usrbuf->head, usrbuf->used, usrbuf->capacity);
3009 while (usrbuf->used >= track->usrbuf_blksize &&
3124 val = frametobyte(&track->usrbuf.fmt,
3175 offset = track->usrbuf.head;
3192 val = track->usrbuf.used;
3355 * Convert n [frames] of the input buffer to bytes in the usrbuf format.
3357 * usrbuf's frame/block and the input buffer's frame/block may be different
3389 * track->usrbuf holds less than one block of byte data ("fragment").
3390 * Note that the input buffer is in frames and the usrbuf is in bytes.
3393 * input->capacity [frames] + usrbuf.capacity [bytes],
3400 bytes += track->usrbuf.used;
3445 if (track->usrbuf.used <= track->usrbuf_usedlow)
3559 kn->kn_data = track->usrbuf_usedhigh - track->usrbuf.used;
3561 return (track->usrbuf.used < track->usrbuf_usedlow);
3651 vsize = roundup2(MAX(track->usrbuf.capacity, PAGE_SIZE), PAGE_SIZE);
3687 /* Finally, replace the usrbuf from kmem to uvm. */
3689 kmem_free(track->usrbuf.mem, track->usrbuf_allocsize);
3690 track->usrbuf.mem = (void *)vstart;
3692 memset(track->usrbuf.mem, 0, vsize);
3782 * Free usrbuf (if available).
3798 vstart = (vaddr_t)track->usrbuf.mem;
3803 kmem_free(track->usrbuf.mem, track->usrbuf_allocsize);
3806 track->usrbuf.mem = NULL;
3807 track->usrbuf.capacity = 0;
4547 * and etc. Only one exception is usrbuf. To transfer with userland, usrbuf
4549 * For playing back, write(2) writes arbitrary length of data to usrbuf.
4553 * (the bottom stage buffer) each time. read(2) (converts one block if usrbuf
4554 * is empty and then) reads arbitrary length of data from usrbuf.
4566 * usrbuf [BB|BB ... BB|BB] .. Byte ring buffer
4587 * [BB|BB ... BB|BB] usrbuf. Is the buffer closest to userland. Mandatory.
4604 * usrbuf [BB] .. Byte (ring) buffer
4625 * [BB] usrbuf. Is the buffer closest to userland. Mandatory.
4668 /* usrbuf is the closest buffer to the userland. */
4669 track->usrbuf.fmt = *usrfmt;
4672 * Usrbuf.
4691 * Therefore it maps 8 * 8K pages and usrbuf->capacity = 63504.
4696 * Therefore it maps 15 * 4K pages and usrbuf->capacity = 61440.
4698 track->usrbuf_blksize = frametobyte(&track->usrbuf.fmt,
4699 frame_per_block(track->mixer, &track->usrbuf.fmt));
4700 track->usrbuf.head = 0;
4701 track->usrbuf.used = 0;
4718 kmem_free(track->usrbuf.mem, track->usrbuf_allocsize);
4722 track->usrbuf.mem = kmem_alloc(newvsize, KM_SLEEP);
4725 track->usrbuf.capacity = newbufsize;
4730 track->usrbuf_usedhigh = track->usrbuf.capacity;
4731 track->usrbuf_usedlow = track->usrbuf.capacity * 3 / 4;
4734 track->usrbuf_usedhigh = track->usrbuf.capacity;
4851 snprintf(m.usrbuf, sizeof(m.usrbuf),
4852 " usr=%d", track->usrbuf.capacity);
4857 m.chvol, m.codec, m.usrbuf);
4861 m.codec, m.outbuf, m.usrbuf);
4961 * It must be called only if usrbuf is not empty and outbuf is
4967 audio_ring_t *usrbuf;
4977 /* At this point usrbuf must not be empty. */
4978 KASSERT(track->usrbuf.used > 0);
4985 usrbuf = &track->usrbuf;
4995 /* The next stage of usrbuf (=input) must be available. */
4999 * Copy usrbuf up to 1block to input buffer.
5000 * count is the number of frames to copy from usrbuf.
5001 * bytes is the number of bytes to copy from usrbuf. However it is
5004 count = uimin(usrbuf->used, track->usrbuf_blksize) / framesize;
5007 if (usrbuf->head + bytes < usrbuf->capacity) {
5009 (uint8_t *)usrbuf->mem + usrbuf->head,
5012 auring_take(usrbuf, bytes);
5017 bytes1 = auring_get_contig_used(usrbuf);
5021 (uint8_t *)usrbuf->mem + usrbuf->head,
5024 auring_take(usrbuf, bytes1);
5028 (uint8_t *)usrbuf->mem + usrbuf->head,
5031 auring_take(usrbuf, bytes2);
5102 m.outbuf, m.freq, m.chvol, m.chmix, m.codec, m.usrbuf);
5114 audio_ring_t *usrbuf;
5147 /* Copy outbuf to usrbuf */
5149 usrbuf = &track->usrbuf;
5150 /* usrbuf should be empty. */
5151 KASSERT(usrbuf->used == 0);
5159 * count is the number of frames to copy to usrbuf.
5160 * bytes is the number of bytes to copy to usrbuf.
5165 if (auring_tail(usrbuf) + bytes < usrbuf->capacity) {
5166 memcpy((uint8_t *)usrbuf->mem + auring_tail(usrbuf),
5169 auring_push(usrbuf, bytes);
5175 bytes1 = auring_get_contig_free(usrbuf);
5178 memcpy((uint8_t *)usrbuf->mem + auring_tail(usrbuf),
5181 auring_push(usrbuf, bytes1);
5185 memcpy((uint8_t *)usrbuf->mem + auring_tail(usrbuf),
5188 auring_push(usrbuf, bytes2);
5197 m.freq, m.chvol, m.chmix, m.codec, m.outbuf, m.usrbuf);
5617 auring_push(&track->usrbuf, track->usrbuf_blksize);
5619 track->usrbuf.head,
5620 track->usrbuf.used,
5621 track->usrbuf.capacity);
5625 track->usrbuf.used > 0) {
6360 track->usrbuf.used = 0;
6361 track->usrbuf.head = 0;
6435 done = (track->usrbuf.used < frametobyte(&track->inputfmt, 1) &&
6564 if (track->usrbuf.used <= track->usrbuf_usedlow &&
7174 * It indicates the buffer size in bytes. Internally it means usrbuf.
7332 pfmt = ptrack->usrbuf.fmt;
7333 saved_pfmt = ptrack->usrbuf.fmt;
7339 rfmt = rtrack->usrbuf.fmt;
7340 saved_rfmt = rtrack->usrbuf.fmt;
7592 maxblks = track->usrbuf.capacity / blksize;
7821 pi->sample_rate = ptrack->usrbuf.fmt.sample_rate;
7822 pi->channels = ptrack->usrbuf.fmt.channels;
7823 pi->precision = ptrack->usrbuf.fmt.precision;
7824 pi->encoding = ptrack->usrbuf.fmt.encoding;
7835 ri->sample_rate = rtrack->usrbuf.fmt.sample_rate;
7836 ri->channels = rtrack->usrbuf.fmt.channels;
7837 ri->precision = rtrack->usrbuf.fmt.precision;
7838 ri->encoding = rtrack->usrbuf.fmt.encoding;
7850 pi->seek = ptrack->usrbuf.used;
7855 pi->buffer_size = ptrack->usrbuf.capacity;