aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2023-11-09 20:28:05 +0100
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2024-01-10 06:58:50 +0000
commitcd04033dbeb0bbdd613780ff4b412fc3d3c768d6 (patch)
tree3675ba47ede055a9db075648d72476a80552ccd3 /util
parent9468484fe904ab4691de6d9c34616667f377ceac (diff)
util/fifo8: Allow fifo8_pop_buf() to not populate popped length
There might be cases where we know the number of bytes we can pop from the FIFO, or we simply don't care how many bytes is returned. Allow fifo8_pop_buf() to take a NULL numptr. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20231109192814.95977-2-philmd@linaro.org> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Diffstat (limited to 'util')
-rw-r--r--util/fifo8.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/util/fifo8.c b/util/fifo8.c
index de8fd0f1c5..2eeed56e80 100644
--- a/util/fifo8.c
+++ b/util/fifo8.c
@@ -66,16 +66,20 @@ uint8_t fifo8_pop(Fifo8 *fifo)
return ret;
}
-const uint8_t *fifo8_pop_buf(Fifo8 *fifo, uint32_t max, uint32_t *num)
+const uint8_t *fifo8_pop_buf(Fifo8 *fifo, uint32_t max, uint32_t *numptr)
{
uint8_t *ret;
+ uint32_t num;
assert(max > 0 && max <= fifo->num);
- *num = MIN(fifo->capacity - fifo->head, max);
+ num = MIN(fifo->capacity - fifo->head, max);
ret = &fifo->data[fifo->head];
- fifo->head += *num;
+ fifo->head += num;
fifo->head %= fifo->capacity;
- fifo->num -= *num;
+ fifo->num -= num;
+ if (numptr) {
+ *numptr = num;
+ }
return ret;
}