function lfds710_ringbuffer_query
Jump to navigation
Jump to search
Source Files
└───liblfds710 ├───inc │ └───liblfds710 │ lfds710_ringbuffer.h └───src └───lfds710_ringbuffer lfds710_ringbuffer_query.c
Enums
enum lfds710_ringbuffer_query { LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_GET_COUNT, LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_VALIDATE };
Opaque Structures
struct lfds710_ringbuffer_state;
Prototype
void lfds710_ringbuffer_query( struct lfds710_ringbuffer_state *rs, enum lfds710_ringbuffer_query query_type, void *query_input, void *query_output );
Parameters
struct lfds710_ringbuffer_state *rs
- A pointer to an initialized struct lfds710_ringbuffer_state.
enum lfds710_ringbuffer_query query_type
- An enum lfds710_ringbuffer_query, which indicates which query to perform.
void *query_input
- A pointer to input data for the query, where the data varies by query;
- LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_GET_COUNT
- query_input is NULL.
- LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_VALIDATE
- query_input can be NULL, or or can be a pointer to a struct lfds710_misc_validation_info, which specifies an expected min/max count, in which case validation also counts the number of unread elements and check they fall within the specified range.
- LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_GET_COUNT
void *query_output
- A pointer to output store for the query, where the output varies by query;
- LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_GET_COUNT
- Points to a lfds710_pal_uint_t, which is set to the number of unread elements in the ringbuffer.
- LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_VALIDATE
- Points to an enum lfds710_misc_validity, which is set to indicate the result of the validation operation.
- LFDS710_RINGBUFFER_QUERY_SINGLETHREADED_GET_COUNT
Notes
All SINGLETHREADED queries can only be safely performed if no read or write operations occur while the operation runs. If read or write operations do occur during the execution of a SINGLETHREADED query, it is theoretically possible for the query to enter an infinite loop. Do not do this.