Lines Matching refs:consume
43 * full: [consume, supply)
44 * empty: [supply, consume)
92 #define ring_empty(d) (((d)->consume == (d)->supply) && \
94 #define ring_full(d) (((d)->supply == (d)->consume) && \
106 ring->supply = ring->consume = ring->bottom = buffer;
136 if (ring->mark == ring->consume) {
173 (ring_subtract(ring, ring->mark, ring->consume) < count)) {
177 if (ring->consume < ring->clearto &&
178 ring->clearto <= ring->consume + count)
180 else if (ring->consume + count > ring->top &&
182 ring->bottom + ((ring->consume + count) - ring->top))
185 ring->consume = ring_increment(ring, ring->consume, count);
191 ring->consume = ring->supply = ring->bottom;
207 return ring_subtract(ring, ring->consume, ring->supply);
215 if ((ring->consume < ring->supply) || ring_empty(ring)) {
217 * if consume is "below" supply, or empty, then
225 return ring_subtract(ring, ring->consume, ring->supply);
236 if ((ring->mark == 0) || (ring->mark == ring->consume)) {
240 return ring_subtract(ring, ring->supply, ring->consume);
243 return ring_subtract(ring, ring->mark, ring->consume);
254 if ((ring->mark == 0) || (ring->mark == ring->consume)) {
255 if ((ring->supply < ring->consume) || ring_full(ring)) {
256 return ring_subtract(ring, ring->top, ring->consume);
258 return ring_subtract(ring, ring->supply, ring->consume);
261 if (ring->mark < ring->consume) {
262 return ring_subtract(ring, ring->top, ring->consume);
264 return ring_subtract(ring, ring->mark, ring->consume);
296 c = ring->consume;