X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=ustream.h;h=6431744155f810f5c8d2b8d3a4b57c47de60e490;hb=cbf80de7f4df61960f386cb01a899cf4228d38f3;hp=a1502afb00676f2943e7104c0a81f4a2363f2bf1;hpb=975ac3e5e30f1106b6b4ea69c8cbf10c7ce8483e;p=project%2Flibubox.git diff --git a/ustream.h b/ustream.h index a1502af..6431744 100644 --- a/ustream.h +++ b/ustream.h @@ -163,9 +163,17 @@ static inline bool ustream_read_blocked(struct ustream *s) return !!(s->read_blocked & READ_BLOCKED_USER); } +static inline int ustream_pending_data(struct ustream *s, bool write) +{ + struct ustream_buf_list *b = write ? &s->w : &s->r; + return b->data_bytes; +} + static inline bool ustream_read_buf_full(struct ustream *s) { - return s->r.data_bytes == s->r.buffer_len; + struct ustream_buf *buf = s->r.data_tail; + return buf && buf->data == buf->head && buf->tail == buf->end && + s->r.buffers == s->r.max_buffers; } /*** --- functions only used by ustream implementations --- ***/