diff --git a/include/haproxy/buf.h b/include/haproxy/buf.h index 417ff9c8e..1136a6a9b 100644 --- a/include/haproxy/buf.h +++ b/include/haproxy/buf.h @@ -1016,6 +1016,17 @@ static inline unsigned int br_full(const struct buffer *r) return r->data + 1 == r->head || r->data + 1 == r->head - 1 + r->size; } +/* Returns the number of buffers present */ +static inline unsigned int br_count(const struct buffer *r) +{ + BUG_ON_HOT(r->area != BUF_RING.area); + + if (r->data >= r->head) + return r->data - r->head + 1; + else + return r->data + r->size - r->head; +} + /* Returns the index of the ring's head buffer */ static inline unsigned int br_head_idx(const struct buffer *r) {