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.
changed since v3: Initialised buffer_size (P2) (Beniamino review) changed since v2: Glueified hot paths to increase performance. Addressed various minor review comments. Added PL022 as example client (Markus Review). changed since v1: Rebased to include fifo buffer functionality. Peter Crosthwaite (4): util/fifo: Generalise naming scheme util/fifo: Generalise for common integer widths ssi: pl022: Send debug info to stderr ssi: pl022: Convert to use FIFO hw/char/serial.c | 30 +++---- hw/net/allwinner_emac.c | 72 +++++++-------- hw/ssi/pl022.c | 103 +++++++++------------- hw/ssi/xilinx_spi.c | 42 ++++----- hw/ssi/xilinx_spips.c | 66 +++++++------- include/hw/char/serial.h | 6 +- include/hw/net/allwinner_emac.h | 6 +- include/qemu/fifo.h | 180 +++++++++++++++++++++++++++++++++++++ include/qemu/fifo8.h | 160 --------------------------------- util/Makefile.objs | 2 +- util/fifo.c | 191 ++++++++++++++++++++++++++++++++++++++++ util/fifo8.c | 126 -------------------------- 12 files changed, 526 insertions(+), 458 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.2.1.g06c4abd