From: Willy Tarreau Date: Thu, 16 Mar 2023 15:46:56 +0000 (+0100) Subject: MINOR: buffer: add br_count() to return the number of allocated bufs X-Git-Tag: v2.8-dev6~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5a26eb2def42f07aad5bde4cd27e9fdd441f207;p=thirdparty%2Fhaproxy.git MINOR: buffer: add br_count() to return the number of allocated bufs We have no way to know how many buffers are currently allocated in a buffer ring. Let's add br_count() for this. --- diff --git a/include/haproxy/buf.h b/include/haproxy/buf.h index 417ff9c8e2..1136a6a9bb 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) {