|
Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
#include <stdint.h>#include <stddef.h>
Include dependency graph for circular_buffer.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | circular_buffer |
| This is a general purpose circular buffer for storing variable lenght buffers in a FIFO order. More... | |
Enumerations | |
| enum | cir_error { CIR_ERROR_NO_MSG = -1 , CIR_ERROR_BUFFER_TOO_SMALL = -2 , CIR_ERROR_NO_SPACE_AVAILABLE = -3 , CIR_ERROR_LOCKED = -4 } |
Functions | |
| void | circular_buffer_init (struct circular_buffer *cb, uint8_t *buffer, size_t len) |
| initialize a circular buffer. | |
| int | circular_buffer_get (struct circular_buffer *cb, uint8_t *buf, size_t len) |
copy the next buffer available in cb to buf. | |
| int | circular_buffer_put (struct circular_buffer *cb, const uint8_t *buf, size_t len) |
Copy buf in the circular buffer. | |
| int | circular_buffer_drop (struct circular_buffer *cb) |
| Drop last inserted record. | |
| size_t | circular_buffer_available (struct circular_buffer *cb) |
| Get the available sapce for the next buffer. | |
| void | circular_buffer_clear (struct circular_buffer *cb) |
| Clear buffer. | |
| struct circular_buffer |
This is a general purpose circular buffer for storing variable lenght buffers in a FIFO order.
Buffers length are stored as uint16_t.
Declare a circular_buffer and allocate a buffer that will outlive it. Initialize the circular_buffer using circular_buffer_init.
Definition at line 23 of file circular_buffer.h.
| Data Fields | ||
|---|---|---|
| uint8_t * | _buf | |
| size_t | _buf_len | |
| size_t | read_offset | |
| size_t | write_offset | |
Definition at line 30 of file circular_buffer.h.
| size_t circular_buffer_available | ( | struct circular_buffer * | cb | ) |
Get the available sapce for the next buffer.
Definition at line 110 of file circular_buffer.c.
References circular_buffer::_buf_len, foo, circular_buffer::read_offset, and circular_buffer::write_offset.
Referenced by circular_buffer_put().
Here is the caller graph for this function:| void circular_buffer_clear | ( | struct circular_buffer * | cb | ) |
Clear buffer.
Definition at line 122 of file circular_buffer.c.
References circular_buffer::read_offset, and circular_buffer::write_offset.
| int circular_buffer_drop | ( | struct circular_buffer * | cb | ) |
Drop last inserted record.
Definition at line 90 of file circular_buffer.c.
References circular_buffer::_buf, circular_buffer::_buf_len, CIR_ERROR_NO_MSG, foo, circular_buffer::read_offset, and circular_buffer::write_offset.
Referenced by uavcan_broadcast().
Here is the caller graph for this function:| int circular_buffer_get | ( | struct circular_buffer * | cb, |
| uint8_t * | buf, | ||
| size_t | len | ||
| ) |
copy the next buffer available in cb to buf.
| cb | The circular buffer |
| buf | destination buffer |
| len | size of buf |
buf, or an error code if negative. Definition at line 22 of file circular_buffer.c.
References circular_buffer::_buf, circular_buffer::_buf_len, CIR_ERROR_BUFFER_TOO_SMALL, CIR_ERROR_NO_MSG, foo, circular_buffer::read_offset, and circular_buffer::write_offset.
Referenced by sts3032_event(), and uavcan_tx().
Here is the caller graph for this function:| void circular_buffer_init | ( | struct circular_buffer * | cb, |
| uint8_t * | buffer, | ||
| size_t | len | ||
| ) |
initialize a circular buffer.
| cb | circular_buffer structure |
| buffer | buffer used internally by the circular buffer |
| len | size of buffer |
Definition at line 13 of file circular_buffer.c.
References circular_buffer::_buf, circular_buffer::_buf_len, circular_buffer::read_offset, and circular_buffer::write_offset.
Referenced by actuators_sts3032_init(), and uavcanInitIface().
Here is the caller graph for this function:| int circular_buffer_put | ( | struct circular_buffer * | cb, |
| const uint8_t * | buf, | ||
| size_t | len | ||
| ) |
Copy buf in the circular buffer.
| cb | The circular buffer |
| buf | source buffer |
| len | Size of buf |
Definition at line 52 of file circular_buffer.c.
References circular_buffer::_buf, circular_buffer::_buf_len, CIR_ERROR_NO_SPACE_AVAILABLE, circular_buffer_available(), foo, and circular_buffer::write_offset.
Referenced by uavcan_broadcast(), and write_buf().
Here is the call graph for this function:
Here is the caller graph for this function: