From e5a26eb2def42f07aad5bde4cd27e9fdd441f207 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 16 Mar 2023 16:46:56 +0100 Subject: [PATCH] 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. --- include/haproxy/buf.h | 11 +++++++++++ 1 file changed, 11 insertions(+) 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) {