no-OS
no_os_circular_buffer.h
Go to the documentation of this file.
1 /***************************************************************************/
41 #ifndef _NO_OS_CIRCULAR_BUFFER_H_
42 #define _NO_OS_CIRCULAR_BUFFER_H_
43 
44 /******************************************************************************/
45 /***************************** Include Files **********************************/
46 /******************************************************************************/
47 
48 #include <stdint.h>
49 
50 /******************************************************************************/
51 /*************************** Types Declarations *******************************/
52 /******************************************************************************/
53 
58 struct no_os_cb_ptr {
60  uint32_t idx;
62  uint32_t spin_count;
66  uint32_t async_size;
67 };
68 
75  uint32_t size;
77  int8_t *buff;
82 };
83 
84 /******************************************************************************/
85 /************************ Functions Declarations ******************************/
86 /******************************************************************************/
87 
88 int32_t no_os_cb_init(struct no_os_circular_buffer **desc, uint32_t size);
89 /* Configure cb structure with given parameters without memory allocation */
90 int32_t no_os_cb_cfg(struct no_os_circular_buffer *desc, int8_t *buf,
91  uint32_t size);
92 int32_t no_os_cb_remove(struct no_os_circular_buffer *desc);
93 int32_t no_os_cb_size(struct no_os_circular_buffer *desc, uint32_t *size);
94 
95 int32_t no_os_cb_write(struct no_os_circular_buffer *desc, const void *data,
96  uint32_t nb_elements);
97 int32_t no_os_cb_read(struct no_os_circular_buffer *desc, void *data,
98  uint32_t nb_elements);
99 
101  uint32_t raw_size_to_write,
102  void **write_buff,
103  uint32_t *raw_size_avilable);
104 int32_t no_os_cb_end_async_write(struct no_os_circular_buffer *desc);
105 
107  uint32_t raw_size_to_read,
108  void **read_buff,
109  uint32_t *raw_size_avilable);
110 int32_t no_os_cb_end_async_read(struct no_os_circular_buffer *desc);
111 
112 #endif //_NO_OS_CIRCULAR_BUFFER_H_
no_os_circular_buffer::read
struct no_os_cb_ptr read
Definition: no_os_circular_buffer.h:81
no_os_cb_ptr
Circular buffer pointer.
Definition: no_os_circular_buffer.h:58
no_os_cb_ptr::idx
uint32_t idx
Definition: no_os_circular_buffer.h:60
no_os_circular_buffer::buff
int8_t * buff
Definition: no_os_circular_buffer.h:77
no_os_cb_prepare_async_write
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)
no_os_circular_buffer::size
uint32_t size
Definition: no_os_circular_buffer.h:75
no_os_cb_end_async_write
int32_t no_os_cb_end_async_write(struct no_os_circular_buffer *desc)
no_os_cb_ptr::async_started
bool async_started
Definition: no_os_circular_buffer.h:64
no_os_cb_ptr::async_size
uint32_t async_size
Definition: no_os_circular_buffer.h:66
no_os_cb_prepare_async_read
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)
no_os_cb_init
int32_t no_os_cb_init(struct no_os_circular_buffer **desc, uint32_t size)
no_os_cb_remove
int32_t no_os_cb_remove(struct no_os_circular_buffer *desc)
no_os_cb_cfg
int32_t no_os_cb_cfg(struct no_os_circular_buffer *desc, int8_t *buf, uint32_t size)
no_os_cb_write
int32_t no_os_cb_write(struct no_os_circular_buffer *desc, const void *data, uint32_t nb_elements)
no_os_circular_buffer
Circular buffer descriptor.
Definition: no_os_circular_buffer.h:73
no_os_cb_size
int32_t no_os_cb_size(struct no_os_circular_buffer *desc, uint32_t *size)
no_os_circular_buffer::write
struct no_os_cb_ptr write
Definition: no_os_circular_buffer.h:79
no_os_cb_end_async_read
int32_t no_os_cb_end_async_read(struct no_os_circular_buffer *desc)
no_os_cb_ptr::spin_count
uint32_t spin_count
Definition: no_os_circular_buffer.h:62
no_os_cb_read
int32_t no_os_cb_read(struct no_os_circular_buffer *desc, void *data, uint32_t nb_elements)