VSF Documented
Macros | Functions
vsf_fifo.c File Reference
#include "service/vsf_service_cfg.h"
#include "vsf_fifo.h"
#include "hal/arch/vsf_arch.h"

Macros

#define __VSF_FIFO_CLASS_IMPLEMENT
 
#define VSF_FIFO_CFG_PROTECT_LEVEL   interrupt
 
#define __vsf_fifo_protect   vsf_protect(VSF_FIFO_CFG_PROTECT_LEVEL)
 
#define __vsf_fifo_unprotect   vsf_unprotect(VSF_FIFO_CFG_PROTECT_LEVEL)
 

Functions

void vsf_fifo_init (vsf_fifo_t *fifo, vsf_fifo_fast_index_t fifo_depth)
 
bool vsf_fifo_push (vsf_fifo_t *fifo, uintptr_t item, vsf_fifo_fast_item_size_t item_size)
 
bool vsf_fifo_pop (vsf_fifo_t *fifo, uintptr_t item, vsf_fifo_fast_item_size_t item_size)
 
uintptr_t vsf_fifo_get_head (vsf_fifo_t *fifo, vsf_fifo_fast_item_size_t item_size)
 
uintptr_t vsf_fifo_get_tail (vsf_fifo_t *fifo, vsf_fifo_fast_item_size_t item_size)
 
vsf_fifo_index_t vsf_fifo_get_number (vsf_fifo_t *fifo)
 

Macro Definition Documentation

◆ __VSF_FIFO_CLASS_IMPLEMENT

#define __VSF_FIFO_CLASS_IMPLEMENT

◆ VSF_FIFO_CFG_PROTECT_LEVEL

#define VSF_FIFO_CFG_PROTECT_LEVEL   interrupt
Note
By default, the driver tries to make all APIs interrupt-safe, ! ! in the case when you want to disable it, ! please use following macro: ! #define VSF_FIFO_CFG_PROTECT_LEVEL none ! ! in the case when you want to use scheduler-safe, ! please use following macro: ! #define VSF_FIFO_CFG_PROTECT_LEVEL scheduler ! ! NOTE: This macro should be defined in vsf_usr_cfg.h

◆ __vsf_fifo_protect

#define __vsf_fifo_protect   vsf_protect(VSF_FIFO_CFG_PROTECT_LEVEL)

◆ __vsf_fifo_unprotect

#define __vsf_fifo_unprotect   vsf_unprotect(VSF_FIFO_CFG_PROTECT_LEVEL)

Function Documentation

◆ vsf_fifo_init()

void vsf_fifo_init ( vsf_fifo_t fifo,
vsf_fifo_fast_index_t  fifo_depth 
)

◆ vsf_fifo_push()

bool vsf_fifo_push ( vsf_fifo_t fifo,
uintptr_t  item,
vsf_fifo_fast_item_size_t  item_size 
)

◆ vsf_fifo_pop()

bool vsf_fifo_pop ( vsf_fifo_t fifo,
uintptr_t  item,
vsf_fifo_fast_item_size_t  item_size 
)

◆ vsf_fifo_get_head()

uintptr_t vsf_fifo_get_head ( vsf_fifo_t fifo,
vsf_fifo_fast_item_size_t  item_size 
)

◆ vsf_fifo_get_tail()

uintptr_t vsf_fifo_get_tail ( vsf_fifo_t fifo,
vsf_fifo_fast_item_size_t  item_size 
)

◆ vsf_fifo_get_number()

vsf_fifo_index_t vsf_fifo_get_number ( vsf_fifo_t fifo)