VSF Documented
esp_ringbuf_port.c File Reference
#include "../vsf_espidf_cfg.h"
#include "esp_ringbuf.h"
#include "../vsf_espidf.h"
#include "kernel/vsf_kernel.h"
#include "service/trace/vsf_trace.h"
#include "service/heap/vsf_heap.h"
#include <string.h>
#include <inttypes.h>
#include <stdio.h>
#include "queue.h"

Data Structures

struct  ItemHeader_t
 
struct  __vsf_espidf_ringbuf
 
struct  __rb_deadline_t
 

Macros

#define rbALIGN_MASK   0x03u
 
#define rbALIGN_SIZE(x)
 
#define rbCHECK_ALIGNED(p)
 
#define rbHEADER_SIZE   sizeof(ItemHeader_t)
 
#define rbALLOW_SPLIT_FLAG   ((uint32_t)1)
 
#define rbBYTE_BUFFER_FLAG   ((uint32_t)2)
 
#define rbBUFFER_FULL_FLAG   ((uint32_t)4)
 
#define rbITEM_FREE_FLAG   ((uint32_t)1)
 
#define rbITEM_DUMMY_DATA_FLAG   ((uint32_t)2)
 
#define rbITEM_SPLIT_FLAG   ((uint32_t)4)
 
#define rbITEM_WRITTEN_FLAG   ((uint32_t)8)
 
#define __RB_SEM_MAX   0x7FFFu
 
#define __rb_wake_data(rb)
 
#define __rb_wake_space(rb)
 
#define __rb_wake_data_isr(rb, w)
 
#define __rb_wake_space_isr(rb, w)
 
#define __rb_cancel(rb)
 

Functions

RingbufHandle_t xRingbufferCreate (size_t buffer_size, RingbufferType_t type)
 
void vRingbufferDelete (RingbufHandle_t handle)
 
BaseType_t xRingbufferSend (RingbufHandle_t handle, const void *data, size_t data_size, TickType_t ticks_to_wait)
 
void * xRingbufferReceive (RingbufHandle_t handle, size_t *item_size, TickType_t ticks_to_wait)
 
void * xRingbufferReceiveUpTo (RingbufHandle_t handle, size_t *item_size, TickType_t ticks_to_wait, size_t wanted_size)
 
void vRingbufferReturnItem (RingbufHandle_t handle, void *item)
 
size_t xRingbufferGetCurFreeSize (RingbufHandle_t handle)
 
size_t xRingbufferGetCurFilledSize (RingbufHandle_t handle)
 
size_t xRingbufferGetMaxItemSize (RingbufHandle_t handle)
 
BaseType_t xRingbufferReceiveSplit (RingbufHandle_t handle, void **ppvHeadItem, void **ppvTailItem, size_t *pxHeadItemSize, size_t *pxTailItemSize, TickType_t ticks_to_wait)
 
RingbufHandle_t xRingbufferCreateNoSplit (size_t xItemSize, size_t xItemNum)
 
BaseType_t xRingbufferSendFromISR (RingbufHandle_t handle, const void *data, size_t data_size, BaseType_t *pxHigherPriorityTaskWoken)
 
void * xRingbufferReceiveFromISR (RingbufHandle_t handle, size_t *item_size, BaseType_t *pxHigherPriorityTaskWoken)
 
void * xRingbufferReceiveUpToFromISR (RingbufHandle_t handle, size_t *item_size, size_t wanted_size, BaseType_t *pxHigherPriorityTaskWoken)
 
BaseType_t xRingbufferReceiveSplitFromISR (RingbufHandle_t handle, void **ppvHeadItem, void **ppvTailItem, size_t *pxHeadItemSize, size_t *pxTailItemSize, BaseType_t *pxHigherPriorityTaskWoken)
 
void vRingbufferReturnItemFromISR (RingbufHandle_t handle, void *item, BaseType_t *pxHigherPriorityTaskWoken)
 
BaseType_t xRingbufferSendAcquire (RingbufHandle_t handle, void **ppvItem, size_t xItemSize, TickType_t ticks_to_wait)
 
BaseType_t xRingbufferSendComplete (RingbufHandle_t handle, void *pvItem)
 
esp_err_t vRingbufferReset (RingbufHandle_t handle)
 
void vRingbufferGetInfo (RingbufHandle_t handle, UBaseType_t *uxFree, UBaseType_t *uxRead, UBaseType_t *uxWrite, UBaseType_t *uxAcquire, UBaseType_t *uxItemsWaiting)
 
void xRingbufferPrintInfo (RingbufHandle_t handle)
 
RingbufHandle_t xRingbufferCreateStatic (size_t buffer_size, RingbufferType_t type, uint8_t *pucStorage, StaticRingbuffer_t *pxStatic)
 
BaseType_t xRingbufferGetStaticBuffer (RingbufHandle_t handle, uint8_t **ppucStorage, StaticRingbuffer_t **ppxStatic)
 
RingbufHandle_t xRingbufferCreateWithCaps (size_t buffer_size, RingbufferType_t type, UBaseType_t uxMemoryCaps)
 
void vRingbufferDeleteWithCaps (RingbufHandle_t handle)
 
BaseType_t xRingbufferAddToQueueSetRead (RingbufHandle_t handle, QueueSetHandle_t xQueueSet)
 
BaseType_t xRingbufferRemoveFromQueueSetRead (RingbufHandle_t handle, QueueSetHandle_t xQueueSet)
 

Macro Definition Documentation

◆ rbALIGN_MASK

#define rbALIGN_MASK   0x03u

◆ rbALIGN_SIZE

#define rbALIGN_SIZE ( x)
Value:
(((x) + rbALIGN_MASK) & ~rbALIGN_MASK)
#define rbALIGN_MASK
Definition esp_ringbuf_port.c:69

◆ rbCHECK_ALIGNED

#define rbCHECK_ALIGNED ( p)
Value:
((((size_t)(p)) & rbALIGN_MASK) == 0)
unsigned int size_t
Definition types.h:74

◆ rbHEADER_SIZE

#define rbHEADER_SIZE   sizeof(ItemHeader_t)

◆ rbALLOW_SPLIT_FLAG

#define rbALLOW_SPLIT_FLAG   ((uint32_t)1)

◆ rbBYTE_BUFFER_FLAG

#define rbBYTE_BUFFER_FLAG   ((uint32_t)2)

◆ rbBUFFER_FULL_FLAG

#define rbBUFFER_FULL_FLAG   ((uint32_t)4)

◆ rbITEM_FREE_FLAG

#define rbITEM_FREE_FLAG   ((uint32_t)1)

◆ rbITEM_DUMMY_DATA_FLAG

#define rbITEM_DUMMY_DATA_FLAG   ((uint32_t)2)

◆ rbITEM_SPLIT_FLAG

#define rbITEM_SPLIT_FLAG   ((uint32_t)4)

◆ rbITEM_WRITTEN_FLAG

#define rbITEM_WRITTEN_FLAG   ((uint32_t)8)

◆ __RB_SEM_MAX

#define __RB_SEM_MAX   0x7FFFu

◆ __rb_wake_data

#define __rb_wake_data ( rb)
Value:
vsf_eda_sem_post(&(rb)->data_sem)
#define vsf_eda_sem_post(__psem)
Definition vsf_eda.h:74

◆ __rb_wake_space

#define __rb_wake_space ( rb)
Value:
vsf_eda_sem_post(&(rb)->space_sem)

◆ __rb_wake_data_isr

#define __rb_wake_data_isr ( rb,
w )
Value:
do { \
vsf_eda_sem_post_isr(&(rb)->data_sem); \
if ((w) != NULL) *(w) = pdTRUE; \
} while (0)
#define NULL
Definition lvgl.h:26
#define pdTRUE
Definition rtos_al.h:53

◆ __rb_wake_space_isr

#define __rb_wake_space_isr ( rb,
w )
Value:
do { \
vsf_eda_sem_post_isr(&(rb)->space_sem); \
if ((w) != NULL) *(w) = pdTRUE; \
} while (0)

◆ __rb_cancel

#define __rb_cancel ( rb)
Value:
do { \
vsf_eda_sync_cancel(&(rb)->data_sem); \
vsf_eda_sync_cancel(&(rb)->space_sem); \
} while (0)

Function Documentation

◆ xRingbufferCreate()

RingbufHandle_t xRingbufferCreate ( size_t buffer_size,
RingbufferType_t type )

◆ vRingbufferDelete()

void vRingbufferDelete ( RingbufHandle_t handle)

◆ xRingbufferSend()

BaseType_t xRingbufferSend ( RingbufHandle_t handle,
const void * data,
size_t data_size,
TickType_t ticks_to_wait )

◆ xRingbufferReceive()

void * xRingbufferReceive ( RingbufHandle_t handle,
size_t * item_size,
TickType_t ticks_to_wait )

◆ xRingbufferReceiveUpTo()

void * xRingbufferReceiveUpTo ( RingbufHandle_t handle,
size_t * item_size,
TickType_t ticks_to_wait,
size_t wanted_size )

◆ vRingbufferReturnItem()

void vRingbufferReturnItem ( RingbufHandle_t handle,
void * item )

◆ xRingbufferGetCurFreeSize()

size_t xRingbufferGetCurFreeSize ( RingbufHandle_t handle)

◆ xRingbufferGetCurFilledSize()

size_t xRingbufferGetCurFilledSize ( RingbufHandle_t handle)

◆ xRingbufferGetMaxItemSize()

size_t xRingbufferGetMaxItemSize ( RingbufHandle_t handle)

◆ xRingbufferReceiveSplit()

BaseType_t xRingbufferReceiveSplit ( RingbufHandle_t handle,
void ** ppvHeadItem,
void ** ppvTailItem,
size_t * pxHeadItemSize,
size_t * pxTailItemSize,
TickType_t ticks_to_wait )

◆ xRingbufferCreateNoSplit()

RingbufHandle_t xRingbufferCreateNoSplit ( size_t xItemSize,
size_t xItemNum )

◆ xRingbufferSendFromISR()

BaseType_t xRingbufferSendFromISR ( RingbufHandle_t handle,
const void * data,
size_t data_size,
BaseType_t * pxHigherPriorityTaskWoken )

◆ xRingbufferReceiveFromISR()

void * xRingbufferReceiveFromISR ( RingbufHandle_t handle,
size_t * item_size,
BaseType_t * pxHigherPriorityTaskWoken )

◆ xRingbufferReceiveUpToFromISR()

void * xRingbufferReceiveUpToFromISR ( RingbufHandle_t handle,
size_t * item_size,
size_t wanted_size,
BaseType_t * pxHigherPriorityTaskWoken )

◆ xRingbufferReceiveSplitFromISR()

BaseType_t xRingbufferReceiveSplitFromISR ( RingbufHandle_t handle,
void ** ppvHeadItem,
void ** ppvTailItem,
size_t * pxHeadItemSize,
size_t * pxTailItemSize,
BaseType_t * pxHigherPriorityTaskWoken )

◆ vRingbufferReturnItemFromISR()

void vRingbufferReturnItemFromISR ( RingbufHandle_t handle,
void * item,
BaseType_t * pxHigherPriorityTaskWoken )

◆ xRingbufferSendAcquire()

BaseType_t xRingbufferSendAcquire ( RingbufHandle_t handle,
void ** ppvItem,
size_t xItemSize,
TickType_t ticks_to_wait )

◆ xRingbufferSendComplete()

BaseType_t xRingbufferSendComplete ( RingbufHandle_t handle,
void * pvItem )

◆ vRingbufferReset()

esp_err_t vRingbufferReset ( RingbufHandle_t handle)

◆ vRingbufferGetInfo()

void vRingbufferGetInfo ( RingbufHandle_t handle,
UBaseType_t * uxFree,
UBaseType_t * uxRead,
UBaseType_t * uxWrite,
UBaseType_t * uxAcquire,
UBaseType_t * uxItemsWaiting )

◆ xRingbufferPrintInfo()

void xRingbufferPrintInfo ( RingbufHandle_t handle)

◆ xRingbufferCreateStatic()

RingbufHandle_t xRingbufferCreateStatic ( size_t buffer_size,
RingbufferType_t type,
uint8_t * pucStorage,
StaticRingbuffer_t * pxStatic )

◆ xRingbufferGetStaticBuffer()

BaseType_t xRingbufferGetStaticBuffer ( RingbufHandle_t handle,
uint8_t ** ppucStorage,
StaticRingbuffer_t ** ppxStatic )

◆ xRingbufferCreateWithCaps()

RingbufHandle_t xRingbufferCreateWithCaps ( size_t buffer_size,
RingbufferType_t type,
UBaseType_t uxMemoryCaps )

◆ vRingbufferDeleteWithCaps()

void vRingbufferDeleteWithCaps ( RingbufHandle_t handle)

◆ xRingbufferAddToQueueSetRead()

BaseType_t xRingbufferAddToQueueSetRead ( RingbufHandle_t handle,
QueueSetHandle_t xQueueSet )

◆ xRingbufferRemoveFromQueueSetRead()

BaseType_t xRingbufferRemoveFromQueueSetRead ( RingbufHandle_t handle,
QueueSetHandle_t xQueueSet )
Generated from commit: vsfteam/vsf@c8a7591