fifo8: honour do_pop argument in fifo8_peekpop_buf()

Pass the do_pop value from fifo8_peekpop_buf() to fifo8_peekpop_bufptr()
to allow peeks to the FIFO buffer, including adjusting the skip parameter
to handle the case where the internal FIFO buffer wraps around.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Octavian Purdila <tavip@google.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240828122258.928947-7-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
Mark Cave-Ayland 2024-08-28 13:22:55 +01:00 committed by Philippe Mathieu-Daudé
parent 7fd6866c3c
commit cfc65db19b

View File

@ -117,7 +117,7 @@ static uint32_t fifo8_peekpop_buf(Fifo8 *fifo, uint8_t *dest, uint32_t destlen,
}
len = destlen;
buf = fifo8_peekpop_bufptr(fifo, len, 0, &n1, true);
buf = fifo8_peekpop_bufptr(fifo, len, 0, &n1, do_pop);
if (dest) {
memcpy(dest, buf, n1);
}
@ -126,7 +126,7 @@ static uint32_t fifo8_peekpop_buf(Fifo8 *fifo, uint8_t *dest, uint32_t destlen,
len -= n1;
len = MIN(len, fifo8_num_used(fifo));
if (len) {
buf = fifo8_peekpop_bufptr(fifo, len, 0, &n2, true);
buf = fifo8_peekpop_bufptr(fifo, len, do_pop ? 0 : n1, &n2, do_pop);
if (dest) {
memcpy(&dest[n1], buf, n2);
}