consume
n = send(net, (char *)netoring.consume, n, 0); /* normal write */
n = send(net, (char *)netoring.consume, 1, MSG_OOB);/* URGENT data */
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->bottom + ((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)) {
return ring_subtract(ring, ring->supply, 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);
return ring_subtract(ring, ring->supply, ring->consume);
if (ring->mark < ring->consume) {
return ring_subtract(ring, ring->top, ring->consume);
return ring_subtract(ring, ring->mark, ring->consume);
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(ttyoring.consume, n);
Dump('>', ttyoring.consume, n);
consume(str, bytes);
consume(str, bytes);
static void consume(evStream *str, size_t bytes);