ustream: add ustream_pending_data accessor function
authorFelix Fietkau <nbd@openwrt.org>
Tue, 1 Jan 2013 15:10:14 +0000 (16:10 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 1 Jan 2013 15:10:39 +0000 (16:10 +0100)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
ustream.h

index a1502af..15f1ba1 100644 (file)
--- a/ustream.h
+++ b/ustream.h
@@ -163,9 +163,15 @@ static inline bool ustream_read_blocked(struct ustream *s)
        return !!(s->read_blocked & READ_BLOCKED_USER);
 }
 
        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)
 {
 static inline bool ustream_read_buf_full(struct ustream *s)
 {
-       return s->r.data_bytes == s->r.buffer_len;
+       return ustream_pending_data(s, false) == s->r.buffer_len;
 }
 
 /*** --- functions only used by ustream implementations --- ***/
 }
 
 /*** --- functions only used by ustream implementations --- ***/