VSF Documented
Data Structures | Macros | Functions
vsf_fifo.h File Reference
#include "service/vsf_service_cfg.h"
#include "utilities/vsf_utilities.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

class  vsf_fifo_base_t
 
class  vsf_fifo_t
 

Macros

#define __vsf_fifo(__name)   __name##_fifo_t
 
#define __declare_vsf_fifo(__name)    vsf_dcl_class(vsf_fifo(__name))
 
#define __define_vsf_fifo(__name, __item_type, __depth)
 
#define vsf_fifo_index_t   uint8_t
 
#define vsf_fifo_fast_index_t   uint_fast8_t
 
#define vsf_fifo_item_size_t   uint16_t
 
#define vsf_fifo_fast_item_size_t   uint_fast16_t
 
fifo normal access
#define vsf_fifo(__name)   __vsf_fifo(__name)
 
#define declare_vsf_fifo(__name)
 
#define dcl_vsf_fifo(__name)
 
#define define_vsf_fifo(__name, __item_type, __depth)
 
#define def_vsf_fifo( __name, __item_type, __depth)
 
#define end_def_fifo(__name)
 
#define end_define_fifo(__name)
 
#define VSF_FIFO_INIT(__FIFO)
 
#define VSF_FIFO_GET_HEAD(__FIFO)
 
#define VSF_FIFO_GET_TAIL(__FIFO)
 
#define VSF_FIFO_PUSH( __FIFO, __ITEM)
 
#define VSF_FIFO_POP( __FIFO, __ITEM)
 
#define VSF_FIFO_GET_NUMBER(__FIFO)
 

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

#define __vsf_fifo (   __name)    __name##_fifo_t

\NOTE: Make sure #include "utilities/ooc_class.h" is close to the class ! definition and there is NO ANY OTHER module-interface-header file ! included in this file

◆ __declare_vsf_fifo

#define __declare_vsf_fifo (   __name)     vsf_dcl_class(vsf_fifo(__name))

◆ __define_vsf_fifo

#define __define_vsf_fifo (   __name,
  __item_type,
  __depth 
)
Value:
private_member( \
implement(vsf_fifo_base_t) \
__item_type __mem[__depth]; \
) \
};
Definition vsf_fifo.h:175
#define __name
Definition hci_transport_aic8800.c:552
#define vsf_class(__name)
Definition ooc_class.h:48
#define vsf_fifo(__name)
Definition vsf_fifo.h:116

◆ vsf_fifo

#define vsf_fifo (   __name)    __vsf_fifo(__name)

◆ declare_vsf_fifo

#define declare_vsf_fifo (   __name)
Value:
/* the name of the fifo */ \
__declare_vsf_fifo(__name)

◆ dcl_vsf_fifo

#define dcl_vsf_fifo (   __name)
Value:
/* the name of the fifo */ \
declare_vsf_fifo(__name)

◆ define_vsf_fifo

#define define_vsf_fifo (   __name,
  __item_type,
  __depth 
)
Value:
/* the depth of the fifo */ \
__define_vsf_fifo(__name, __item_type, (__depth))

◆ def_vsf_fifo

#define def_vsf_fifo (   __name,
  __item_type,
  __depth 
)
Value:
/* the depth of the fifo */ \
define_vsf_fifo(__name, __item_type, (__depth))

◆ end_def_fifo

#define end_def_fifo (   __name)

◆ end_define_fifo

#define end_define_fifo (   __name)

◆ VSF_FIFO_INIT

#define VSF_FIFO_INIT (   __FIFO)
Value:
/* the address of the fifo */ \
vsf_fifo_init((vsf_fifo_t *)(__FIFO), dimof((__FIFO)->__mem));
#define dimof(__arr)
Definition __type.h:155
Definition vsf_fifo.h:186

◆ VSF_FIFO_GET_HEAD

#define VSF_FIFO_GET_HEAD (   __FIFO)
Value:
/* the address of the fifo */ \
vsf_fifo_get_head((vsf_fifo_t *)(__FIFO), sizeof((__FIFO)->__mem[0]))

◆ VSF_FIFO_GET_TAIL

#define VSF_FIFO_GET_TAIL (   __FIFO)
Value:
/* the address of the fifo */ \
vsf_fifo_get_tail((vsf_fifo_t *)(__FIFO), sizeof((__FIFO)->__mem[0]))

◆ VSF_FIFO_PUSH

#define VSF_FIFO_PUSH (   __FIFO,
  __ITEM 
)
Value:
/* the address of the item to push */ \
vsf_fifo_push((vsf_fifo_t *)(__FIFO), (uintptr_t)(__ITEM), sizeof((__FIFO)->__mem[0]))
uint32_t uintptr_t
Definition stdint.h:38

◆ VSF_FIFO_POP

#define VSF_FIFO_POP (   __FIFO,
  __ITEM 
)
Value:
/* the address of the item to pop */ \
vsf_fifo_pop((vsf_fifo_t *)(__FIFO), (uintptr_t)(__ITEM), sizeof((__FIFO)->__mem[0]))

◆ VSF_FIFO_GET_NUMBER

#define VSF_FIFO_GET_NUMBER (   __FIFO)
Value:
/* the address of the fifo */ \
vsf_fifo_get_number((vsf_fifo_t *)(__FIFO))

◆ vsf_fifo_index_t

#define vsf_fifo_index_t   uint8_t

◆ vsf_fifo_fast_index_t

#define vsf_fifo_fast_index_t   uint_fast8_t

◆ vsf_fifo_item_size_t

#define vsf_fifo_item_size_t   uint16_t

◆ vsf_fifo_fast_item_size_t

#define vsf_fifo_fast_item_size_t   uint_fast16_t

Function Documentation

◆ vsf_fifo_init()

void vsf_fifo_init ( vsf_fifo_t fifo,
vsf_fifo_fast_index_t  fifo_depth 
)
extern

◆ vsf_fifo_push()

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

◆ vsf_fifo_pop()

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

◆ vsf_fifo_get_head()

uintptr_t vsf_fifo_get_head ( vsf_fifo_t fifo,
vsf_fifo_fast_item_size_t  item_size 
)
extern

◆ vsf_fifo_get_tail()

uintptr_t vsf_fifo_get_tail ( vsf_fifo_t fifo,
vsf_fifo_fast_item_size_t  item_size 
)
extern

◆ vsf_fifo_get_number()

vsf_fifo_index_t vsf_fifo_get_number ( vsf_fifo_t fifo)
extern