|
| wiced_result_t | ring_buffer_consume (wiced_ring_buffer_t *ring_buffer, uint32_t bytes_consumed) |
| |
| wiced_result_t | ring_buffer_deinit (wiced_ring_buffer_t *ring_buffer) |
| |
| uint32_t | ring_buffer_free_space (wiced_ring_buffer_t *ring_buffer) |
| |
| wiced_result_t | ring_buffer_get_data (wiced_ring_buffer_t *ring_buffer, uint8_t **data, uint32_t *contiguous_bytes) |
| |
| wiced_result_t | ring_buffer_init (wiced_ring_buffer_t *ring_buffer, uint8_t *buffer, uint32_t buffer_size) |
| |
| wiced_result_t | ring_buffer_read (wiced_ring_buffer_t *ring_buffer, uint8_t *data, uint32_t data_length, uint32_t *number_of_bytes_read) |
| |
| uint32_t | ring_buffer_used_space (wiced_ring_buffer_t *ring_buffer) |
| |
| uint32_t | ring_buffer_write (wiced_ring_buffer_t *ring_buffer, const uint8_t *data, uint32_t data_length) |
| |
This library implements a lock-free ringbuffer as described in Donald E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching. Note that since the last entry of the ring buffer is not used in a lock free implementation, you should allocate one more entry then the total number of entries you plan to use.
◆ ring_buffer_consume()
| wiced_result_t ring_buffer_consume |
( |
wiced_ring_buffer_t * | ring_buffer, |
|
|
uint32_t | bytes_consumed ) |
Consume (discard) data in a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
| [in] | bytes_consumed | : Number of bytes to consume. |
- Returns
- wiced_result_t
◆ ring_buffer_deinit()
| wiced_result_t ring_buffer_deinit |
( |
wiced_ring_buffer_t * | ring_buffer | ) |
|
De-initialize a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
- Returns
- wiced_result_t
◆ ring_buffer_free_space()
| uint32_t ring_buffer_free_space |
( |
wiced_ring_buffer_t * | ring_buffer | ) |
|
Return the amount of available space in a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
- Returns
- Length of available space in the buffer.
◆ ring_buffer_get_data()
| wiced_result_t ring_buffer_get_data |
( |
wiced_ring_buffer_t * | ring_buffer, |
|
|
uint8_t ** | data, |
|
|
uint32_t * | contiguous_bytes ) |
Get a pointer to the start of data in a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
| [out] | data | : Address of the pointer for the data start in the buffer. |
| [out] | data_length | : Length of contiguous data bytes in the buffer. |
- Returns
- wiced_result_t
◆ ring_buffer_init()
| wiced_result_t ring_buffer_init |
( |
wiced_ring_buffer_t * | ring_buffer, |
|
|
uint8_t * | buffer, |
|
|
uint32_t | buffer_size ) |
Initialize a ring buffer.
Note: This is a non-locking ring buffer implementation that will store a maximum of buffer_size - 1 bytes of data.
- Parameters
-
| [out] | ring_buffer | : Pointer to the ring buffer structure to be initialized. |
| [in] | buffer | : Pointer to the buffer to use for the ring buffer. |
| [in] | buffer_size | : Size of the buffer (maximum buffer_size - 1 bytes will be stored). |
- Returns
- wiced_result_t
◆ ring_buffer_read()
| wiced_result_t ring_buffer_read |
( |
wiced_ring_buffer_t * | ring_buffer, |
|
|
uint8_t * | data, |
|
|
uint32_t | data_length, |
|
|
uint32_t * | number_of_bytes_read ) |
Read data from a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
| [in] | data | : Pointer to the buffer for read data. |
| [in] | data_length | : Length of the data buffer. |
| [out] | number_of_bytes_read | : Number of bytes read from the ring buffer. |
- Returns
- wiced_result_t
◆ ring_buffer_used_space()
| uint32_t ring_buffer_used_space |
( |
wiced_ring_buffer_t * | ring_buffer | ) |
|
Return the amount of used space in a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
- Returns
- Length of data currently in the buffer.
◆ ring_buffer_write()
| uint32_t ring_buffer_write |
( |
wiced_ring_buffer_t * | ring_buffer, |
|
|
const uint8_t * | data, |
|
|
uint32_t | data_length ) |
Write to a ring buffer.
- Parameters
-
| [in] | ring_buffer | : Pointer to the ring buffer structure. |
| [in] | data | : Pointer to the data to write to the buffer. |
| [in] | data_length | : Length of data in bytes. |
- Returns
- Length of data successfully written to the buffer.