29 #ifndef __RING_BUFFER_H_ 30 #define __RING_BUFFER_H_ 51 #define RB_INDH(gl_rb_t) ((gl_rb_t)->head & ((gl_rb_t)->count - 1)) 52 #define RB_INDT(gl_rb_t) ((gl_rb_t)->tail & ((gl_rb_t)->count - 1)) 53 #define RB_VHEAD(gl_rb_t) (*(volatile uint32_t *) &(gl_rb_t)->head) 54 #define RB_VTAIL(gl_rb_t) (*(volatile uint32_t *) &(gl_rb_t)->tail) 55 #define RB_FLUSH(gl_rb_t) (((RINGBUFF_T *)gl_rb_t)->head = ((RINGBUFF_T *)gl_rb_t)->tail=0) 65 void RingBuffer_Init(RINGBUFF_T *RingBuff, void *buffer, int itemSize, int count);
int RingBuffer_GetFree(RINGBUFF_T *RingBuff)
Получение размера свободного места в кольцевом буфере
Этот файл содержит структуры, макросы и функции необходимые для работы с дополнительными типами...
int RingBuffer_IsEmpty(RINGBUFF_T *RingBuff)
Проверка кольцевого буфера на отсутствие данных
int RingBuffer_GetCount(RINGBUFF_T *RingBuff)
Получения количества элементов, записанных в кольцевой буфер.
Status RingBuffer_Insert(RINGBUFF_T *RingBuff, const void *data)
Запись одного элемента в кольцевой буфер.
int RingBuffer_IsFull(RINGBUFF_T *RingBuff)
Проверка на наличие свободного места в кольцевом буфере
int RingBuffer_InsertMult(RINGBUFF_T *RingBuff, const void *data, int num)
Запись нескольких элементов в кольцевой буфер.
Структура кольцевого буфера
Status RingBuffer_Pop(RINGBUFF_T *RingBuff, void *data)
Чтение одного элемента из кольцевого буфера
int RingBuffer_PopMult(RINGBUFF_T *RingBuff, void *data, int num)
Чтение массива элементов из кольцевого буфера
int RingBuffer_GetSize(RINGBUFF_T *RingBuff)
Получение размера кольцевого буфера в байтах.
Status
Тип для статуса операции