fifo8 header¶
The documentation of QEMU’s qemu/fifo8.h
header.
-
void
fifo8_create
(Fifo8 * fifo, uint32_t capacity)¶
Parameters
Fifo8 * fifo
- struct Fifo8 to initialise with new FIFO
uint32_t capacity
- capacity of the newly created FIFO
Description
Create a FIFO of the specified size. Clients should call fifo8_destroy() when finished using the fifo. The FIFO is initially empty.
-
void
fifo8_destroy
(Fifo8 * fifo)¶
Parameters
Fifo8 * fifo
- FIFO to cleanup
Description
Cleanup a FIFO created with fifo8_create(). Frees memory created for FIFO storage. The FIFO is no longer usable after this has been called.
-
void
fifo8_push
(Fifo8 * fifo, uint8_t data)¶
Parameters
Fifo8 * fifo
- FIFO to push to
uint8_t data
- data byte to push
Description
Push a data byte to the FIFO. Behaviour is undefined if the FIFO is full. Clients are responsible for checking for fullness using fifo8_is_full().
-
void
fifo8_push_all
(Fifo8 * fifo, const uint8_t * data, uint32_t num)¶
Parameters
Fifo8 * fifo
- FIFO to push to
const uint8_t * data
- data to push
uint32_t num
- undescribed
Description
Push a byte array to the FIFO. Behaviour is undefined if the FIFO is full. Clients are responsible for checking the space left in the FIFO using fifo8_num_free().
-
uint8_t
fifo8_pop
(Fifo8 * fifo)¶
Parameters
Fifo8 * fifo
- fifo to pop from
Description
Pop a data byte from the FIFO. Behaviour is undefined if the FIFO is empty. Clients are responsible for checking for emptyness using fifo8_is_empty().
Return
The popped data byte.
-
const uint8_t *
fifo8_pop_buf
(Fifo8 * fifo, uint32_t max, uint32_t * num)¶
Parameters
Fifo8 * fifo
- FIFO to pop from
uint32_t max
- maximum number of bytes to pop
uint32_t * num
- actual number of returned bytes
Description
Pop a number of elements from the FIFO up to a maximum of max. The buffer containing the popped data is returned. This buffer points directly into the FIFO backing store and data is invalidated once any of the fifo8_* APIs are called on the FIFO.
The function may return fewer bytes than requested when the data wraps around in the ring buffer; in this case only a contiguous part of the data is returned.
The number of valid bytes returned is populated in *num; will always return at least 1 byte. max must not be 0 or greater than the number of bytes in the FIFO.
Clients are responsible for checking the availability of requested data using fifo8_num_used().
Return
A pointer to popped data.
-
void
fifo8_reset
(Fifo8 * fifo)¶
Parameters
Fifo8 * fifo
- FIFO to reset
Description
Reset a FIFO. All data is discarded and the FIFO is emptied.
Parameters
Fifo8 * fifo
- FIFO to check
Description
Check if a FIFO is empty.
Return
True if the fifo is empty, false otherwise.
Parameters
Fifo8 * fifo
- FIFO to check
Description
Check if a FIFO is full.
Return
True if the fifo is full, false otherwise.
-
uint32_t
fifo8_num_free
(Fifo8 * fifo)¶
Parameters
Fifo8 * fifo
- FIFO to check
Description
Return the number of free bytes in the FIFO.
Return
Number of free bytes.
-
uint32_t
fifo8_num_used
(Fifo8 * fifo)¶
Parameters
Fifo8 * fifo
- FIFO to check
Description
Return the number of used bytes in the FIFO.
Return
Number of used bytes.