VSF Documented
Data Structures | Macros | Functions
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 <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)   (((x) + rbALIGN_MASK) & ~rbALIGN_MASK)
 
#define rbCHECK_ALIGNED(p)   ((((size_t)(p)) & rbALIGN_MASK) == 0)
 
#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)   vsf_eda_sem_post(&(rb)->data_sem)
 
#define __rb_wake_space(rb)   vsf_eda_sem_post(&(rb)->space_sem)
 
#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)    (((x) + rbALIGN_MASK) & ~rbALIGN_MASK)

◆ rbCHECK_ALIGNED

#define rbCHECK_ALIGNED (   p)    ((((size_t)(p)) & rbALIGN_MASK) == 0)

◆ 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)    vsf_eda_sem_post(&(rb)->data_sem)

◆ __rb_wake_space

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

◆ __rb_wake_data_isr

#define __rb_wake_data_isr (   rb,
 
)
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,
 
)
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@c3767bf