Lines Matching defs:buffer
60 * This structure describes our ring buffer. Its always a power of 2
76 * The data buffer is allocaed via memalign to make sure it is
79 typedef struct buffer {
80 char *data; /* data buffer */
83 int mask; /* buffer size - 1, wraparound index */
546 buffer_t buffer;
718 buffer.mask = (1 << (ffs(blocksize * 3) + 1)) - 1;
719 buffer.data = memalign(16, buffer.mask + 1);
720 if (buffer.data == NULL) {
856 buffer.navail = 0;
857 buffer.prod = 0;
858 buffer.cons = 0;
860 for (refill(&buffer); buffer.navail > 0; refill(&buffer)) {
866 * If this buffer was the same as last, then just
869 if ((!first) && (buffer.navail >= blocksize) && (!doall)) {
870 j = buffer.cons;
873 if (buffer.data[j & buffer.mask] !=
874 buffer.data[k & buffer.mask]) {
885 buffer.navail -= blocksize;
887 buffer.cons += blocksize;
888 buffer.cons &= buffer.mask;
895 mx = (buffer.navail > blocksize) ? blocksize : buffer.navail;
905 for (i = 0, j = buffer.cons; i < mx; i += out->width) {
906 out->func(&buffer, j);
908 j &= buffer.mask;
912 buffer.cons += mx;
913 buffer.cons &= buffer.mask;
915 buffer.navail -= mx;