There is a utility helper for dealing with 8 bit fifos. This should be applicable to other integer widths as well. These two patches generalise this FIFO to work for 16, 32 and 64 bit ints.
CC some recent contributors around this code. changed since v1: Rebased to include fifo buffer functionality. Peter Crosthwaite (2): util/fifo: s/fifo8/fifo globally util/fifo: Generalise for common integer widths hw/char/serial.c | 30 +++--- hw/net/allwinner_emac.c | 72 +++++++------- hw/ssi/xilinx_spi.c | 42 ++++----- hw/ssi/xilinx_spips.c | 70 +++++++------- include/hw/char/serial.h | 6 +- include/hw/net/allwinner_emac.h | 6 +- include/qemu/fifo.h | 166 ++++++++++++++++++++++++++++++++ include/qemu/fifo8.h | 160 ------------------------------- util/Makefile.objs | 2 +- util/fifo.c | 203 ++++++++++++++++++++++++++++++++++++++++ util/fifo8.c | 126 ------------------------- 11 files changed, 483 insertions(+), 400 deletions(-) create mode 100644 include/qemu/fifo.h delete mode 100644 include/qemu/fifo8.h create mode 100644 util/fifo.c delete mode 100644 util/fifo8.c -- 1.9.1.1.gbb9f595