consume
n = send(net, netoring.consume, n, 0);
n = send(net, netoring.consume, 1, MSG_OOB);
Dump('>', netoring.consume, n);
ring->supply = ring->consume = ring->bottom = buffer;
if (ring->mark == ring->consume) {
(ring_subtract(ring, ring->mark, ring->consume) < count)) {
if (ring->consume < ring->clearto &&
ring->clearto <= ring->consume + count)
else if (ring->consume + count > ring->top &&
ring->consume = ring_increment(ring, ring->consume, count);
ring->consume = ring->supply = ring->bottom;
return (ring_subtract(ring, ring->consume, ring->supply));
if ((ring->consume < ring->supply) || ring_empty(ring)) {
return (ring_subtract(ring, ring->consume, ring->supply));
if ((ring->mark == 0) || (ring->mark == ring->consume)) {
ring->consume));
return (ring_subtract(ring, ring->mark, ring->consume));
if ((ring->mark == 0) || (ring->mark == ring->consume)) {
if ((ring->supply < ring->consume) || ring_full(ring)) {
return (ring_subtract(ring, ring->top, ring->consume));
ring->consume));
if (ring->mark < ring->consume) {
return (ring_subtract(ring, ring->top, ring->consume));
return (ring_subtract(ring, ring->mark, ring->consume));
memcpy(buffer, ring->consume, i);
c = ring->consume;
#define ring_empty(d) (((d)->consume == (d)->supply) && \
#define ring_full(d) (((d)->supply == (d)->consume) && \
unsigned char *consume; /* where data comes out of */
sbp = netiring.consume;
tbp = ttyiring.consume;
n = TerminalWrite((char *)ttyoring.consume, n);
Dump('>', ttyoring.consume, n);
consume(str, bytes);
consume(str, bytes);
static void consume(evStream *str, size_t bytes);
goto consume;
consume: