diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2021-02-08 09:23:53 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2021-02-08 09:23:53 +0000 |
commit | 2766043345748626490e04d69b7a9493c0294cfc (patch) | |
tree | c61eff2b9cd95e3f7efb96281d52cba4ca2c9c06 | |
parent | 5b19cb63d9dfda41b412373b8c9fe14641bcab60 (diff) | |
parent | cdf01ca4810203e229bcac822b42eba58e1abbf9 (diff) | |
download | qemu-2766043345748626490e04d69b7a9493c0294cfc.zip qemu-2766043345748626490e04d69b7a9493c0294cfc.tar.gz qemu-2766043345748626490e04d69b7a9493c0294cfc.tar.bz2 |
Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-20210207' into staging
qemu-sparc queue
# gpg: Signature made Sun 07 Feb 2021 22:09:12 GMT
# gpg: using RSA key CC621AB98E82200D915CC9C45BC2C56FAE0F321F
# gpg: issuer "mark.cave-ayland@ilande.co.uk"
# gpg: Good signature from "Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>" [full]
# Primary key fingerprint: CC62 1AB9 8E82 200D 915C C9C4 5BC2 C56F AE0F 321F
* remotes/mcayland/tags/qemu-sparc-20210207:
utils/fifo8: add VMSTATE_FIFO8_TEST macro
utils/fifo8: change fatal errors from abort() to assert()
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | include/qemu/fifo8.h | 16 | ||||
-rw-r--r-- | util/fifo8.c | 16 |
2 files changed, 14 insertions, 18 deletions
diff --git a/include/qemu/fifo8.h b/include/qemu/fifo8.h index 489c354..28bf2ce 100644 --- a/include/qemu/fifo8.h +++ b/include/qemu/fifo8.h @@ -148,12 +148,16 @@ uint32_t fifo8_num_used(Fifo8 *fifo); extern const VMStateDescription vmstate_fifo8; -#define VMSTATE_FIFO8(_field, _state) { \ - .name = (stringify(_field)), \ - .size = sizeof(Fifo8), \ - .vmsd = &vmstate_fifo8, \ - .flags = VMS_STRUCT, \ - .offset = vmstate_offset_value(_state, _field, Fifo8), \ +#define VMSTATE_FIFO8_TEST(_field, _state, _test) { \ + .name = (stringify(_field)), \ + .field_exists = (_test), \ + .size = sizeof(Fifo8), \ + .vmsd = &vmstate_fifo8, \ + .flags = VMS_STRUCT, \ + .offset = vmstate_offset_value(_state, _field, Fifo8), \ } +#define VMSTATE_FIFO8(_field, _state) \ + VMSTATE_FIFO8_TEST(_field, _state, NULL) + #endif /* QEMU_FIFO8_H */ diff --git a/util/fifo8.c b/util/fifo8.c index a5dd789..d4d1c13 100644 --- a/util/fifo8.c +++ b/util/fifo8.c @@ -31,9 +31,7 @@ void fifo8_destroy(Fifo8 *fifo) void fifo8_push(Fifo8 *fifo, uint8_t data) { - if (fifo->num == fifo->capacity) { - abort(); - } + assert(fifo->num < fifo->capacity); fifo->data[(fifo->head + fifo->num) % fifo->capacity] = data; fifo->num++; } @@ -42,9 +40,7 @@ void fifo8_push_all(Fifo8 *fifo, const uint8_t *data, uint32_t num) { uint32_t start, avail; - if (fifo->num + num > fifo->capacity) { - abort(); - } + assert(fifo->num + num <= fifo->capacity); start = (fifo->head + fifo->num) % fifo->capacity; @@ -63,9 +59,7 @@ uint8_t fifo8_pop(Fifo8 *fifo) { uint8_t ret; - if (fifo->num == 0) { - abort(); - } + assert(fifo->num > 0); ret = fifo->data[fifo->head++]; fifo->head %= fifo->capacity; fifo->num--; @@ -76,9 +70,7 @@ const uint8_t *fifo8_pop_buf(Fifo8 *fifo, uint32_t max, uint32_t *num) { uint8_t *ret; - if (max == 0 || max > fifo->num) { - abort(); - } + assert(max > 0 && max <= fifo->num); *num = MIN(fifo->capacity - fifo->head, max); ret = &fifo->data[fifo->head]; fifo->head += *num; |