no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
no_os_circular_buffer.h
Go to the documentation of this file.
1/***************************************************************************/
34
35#ifndef _NO_OS_CIRCULAR_BUFFER_H_
36#define _NO_OS_CIRCULAR_BUFFER_H_
37
38#include <stdint.h>
39
46 uint32_t idx;
48 uint32_t spin_count;
52 uint32_t async_size;
53};
54
61 uint32_t size;
63 int8_t *buff;
68};
69
70int32_t no_os_cb_init(struct no_os_circular_buffer **desc, uint32_t size);
71/* Configure cb structure with given parameters without memory allocation */
72int32_t no_os_cb_cfg(struct no_os_circular_buffer *desc, int8_t *buf,
73 uint32_t size);
75int32_t no_os_cb_size(struct no_os_circular_buffer *desc, uint32_t *size);
76
77int32_t no_os_cb_write(struct no_os_circular_buffer *desc, const void *data,
78 uint32_t nb_elements);
79int32_t no_os_cb_read(struct no_os_circular_buffer *desc, void *data,
80 uint32_t nb_elements);
81
83 uint32_t raw_size_to_write,
84 void **write_buff,
85 uint32_t *raw_size_avilable);
87
89 uint32_t raw_size_to_read,
90 void **read_buff,
91 uint32_t *raw_size_avilable);
93
94#endif //_NO_OS_CIRCULAR_BUFFER_H_
int32_t no_os_cb_init(struct no_os_circular_buffer **desc, uint32_t size)
int32_t no_os_cb_size(struct no_os_circular_buffer *desc, uint32_t *size)
int32_t no_os_cb_prepare_async_read(struct no_os_circular_buffer *desc, uint32_t raw_size_to_read, void **read_buff, uint32_t *raw_size_avilable)
int32_t no_os_cb_read(struct no_os_circular_buffer *desc, void *data, uint32_t nb_elements)
int32_t no_os_cb_prepare_async_write(struct no_os_circular_buffer *desc, uint32_t raw_size_to_write, void **write_buff, uint32_t *raw_size_avilable)
int32_t no_os_cb_cfg(struct no_os_circular_buffer *desc, int8_t *buf, uint32_t size)
int32_t no_os_cb_remove(struct no_os_circular_buffer *desc)
int32_t no_os_cb_end_async_write(struct no_os_circular_buffer *desc)
int32_t no_os_cb_write(struct no_os_circular_buffer *desc, const void *data, uint32_t nb_elements)
int32_t no_os_cb_end_async_read(struct no_os_circular_buffer *desc)
Circular buffer pointer.
Definition no_os_circular_buffer.h:44
uint32_t spin_count
Definition no_os_circular_buffer.h:48
uint32_t idx
Definition no_os_circular_buffer.h:46
uint32_t async_size
Definition no_os_circular_buffer.h:52
bool async_started
Definition no_os_circular_buffer.h:50
Circular buffer descriptor.
Definition no_os_circular_buffer.h:59
uint32_t size
Definition no_os_circular_buffer.h:61
struct no_os_cb_ptr write
Definition no_os_circular_buffer.h:65
int8_t * buff
Definition no_os_circular_buffer.h:63
struct no_os_cb_ptr read
Definition no_os_circular_buffer.h:67