VSF Documented
__type.h File Reference
#include "vsf_usr_cfg.h"
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <assert.h>
#include <stdio.h>
#include <setjmp.h>
#include <stdarg.h>

Go to the source code of this file.

Macros

#define ENABLED   1
 
#define DISABLED   0
 
#define __FSM_RT_TYPE__
 
#define VSF_ASSERT(__EXPR)
 
#define __VSF_STR(__STRING)
 
#define VSF_STR(__STRING)
 
#define vsf_max(__a, __b)
 
#define vsf_min(__a, __b)
 
#define dimof(__arr)
 
#define vsf_offset_of(__type, __member)
 
#define vsf_container_of(__ptr, __type, __member)
 
#define vsf_safe_container_of(__ptr, __type, __member)
 
#define VSF_COMPATIBILITY   DISABLED
 
#define container_of   vsf_container_of
 
#define safe_container_of   vsf_safe_container_of
 
#define vsf_abs(__num)
 
#define VSF_BIT(__N)
 
#define VSF_BITMASK(__N)
 
#define VSF_UNUSED_PARAM(__VAL)
 
#define VSF_STATIC_ASSERT0(__COND)
 
#define VSF_STATIC_ASSERT1(__COND, __MSG)
 
#define VSF_STATIC_ASSERT(__COND, ...)
 
#define __REG_TYPE__
 
#define __REG_CONNECT(__A, __B)
 
#define __REG_RSVD_NAME(__NAME)
 
#define ____REG_RSVD(__NAME, __BIT)
 
#define ____REG_RSVD_N(__NAME, __BIT, __N)
 
#define __REG_RSVD(__BIT)
 
#define __REG_RSVD_N(__BIT, __N)
 
#define REG_RSVD_NAME   __REG_RSVD_NAME(__LINE__)
 
#define REG_RSVD(__BIT)
 
#define REG_RSVD_N(__BIT, __N)
 
#define REG_RSVD_U8   REG_RSVD(8)
 
#define REG_RSVD_U16   REG_RSVD(16)
 
#define REG_RSVD_U32   REG_RSVD(32)
 
#define REG_RSVD_U8N(__N)
 
#define REG_RSVD_U16N(__N)
 
#define REG_RSVD_U32N(__N)
 
#define REG8_RSVD_N(__N)
 
#define REG8_RSVD_B(__BYTE_CNT)
 
#define REG8_RSVD_8B   REG8_RSVD_B(8)
 
#define REG8_RSVD_16B   REG8_RSVD_B(16)
 
#define REG8_RSVD_32B   REG8_RSVD_B(32)
 
#define REG8_RSVD_64B   REG8_RSVD_B(64)
 
#define REG8_RSVD_128B   REG8_RSVD_B(128)
 
#define REG8_RSVD_256B   REG8_RSVD_B(256)
 
#define REG8_RSVD_512B   REG8_RSVD_B(512)
 
#define REG8_RSVD_1K   REG8_RSVD_B(1024)
 
#define REG8_RSVD_2K   REG8_RSVD_B(2048)
 
#define REG8_RSVD_4K   REG8_RSVD_B(4096)
 
#define REG8_RSVD_8K   REG8_RSVD_B(8192)
 
#define REG8_RSVD_16K   REG8_RSVD_B(16 * 1024)
 
#define REG8_RSVD_32K   REG8_RSVD_B(32 * 1024)
 
#define REG8_RSVD_64K   REG8_RSVD_B(64 * 1024)
 
#define REG8_RSVD_128K   REG8_RSVD_B(128 * 1024)
 
#define REG8_RSVD_256K   REG8_RSVD_B(256 * 1024)
 
#define REG8_RSVD_512K   REG8_RSVD_B(512 * 1024)
 
#define REG8_RSVD_1M   REG8_RSVD_B(1024 * 1024)
 
#define REG16_RSVD_N(__N)
 
#define REG16_RSVD_B(__BYTE_CNT)
 
#define REG16_RSVD_8B   REG16_RSVD_B(8)
 
#define REG16_RSVD_16B   REG16_RSVD_B(16)
 
#define REG16_RSVD_32B   REG16_RSVD_B(32)
 
#define REG16_RSVD_64B   REG16_RSVD_B(64)
 
#define REG16_RSVD_128B   REG16_RSVD_B(128)
 
#define REG16_RSVD_256B   REG16_RSVD_B(256)
 
#define REG16_RSVD_512B   REG16_RSVD_B(512)
 
#define REG16_RSVD_1K   REG16_RSVD_B(1024)
 
#define REG16_RSVD_2K   REG16_RSVD_B(2048)
 
#define REG16_RSVD_4K   REG16_RSVD_B(4096)
 
#define REG16_RSVD_8K   REG16_RSVD_B(8192)
 
#define REG16_RSVD_16K   REG16_RSVD_B(16 * 1024)
 
#define REG16_RSVD_32K   REG16_RSVD_B(32 * 1024)
 
#define REG16_RSVD_64K   REG16_RSVD_B(64 * 1024)
 
#define REG16_RSVD_128K   REG16_RSVD_B(128 * 1024)
 
#define REG16_RSVD_256K   REG16_RSVD_B(256 * 1024)
 
#define REG16_RSVD_512K   REG16_RSVD_B(512 * 1024)
 
#define REG16_RSVD_1M   REG16_RSVD_B(1024 * 1024)
 
#define REG32_RSVD_N(__N)
 
#define REG32_RSVD_B(__BYTE_CNT)
 
#define REG32_RSVD_8B   REG32_RSVD_B(8)
 
#define REG32_RSVD_16B   REG32_RSVD_B(16)
 
#define REG32_RSVD_32B   REG32_RSVD_B(32)
 
#define REG32_RSVD_64B   REG32_RSVD_B(64)
 
#define REG32_RSVD_128B   REG32_RSVD_B(128)
 
#define REG32_RSVD_256B   REG32_RSVD_B(256)
 
#define REG32_RSVD_512B   REG32_RSVD_B(512)
 
#define REG32_RSVD_1K   REG32_RSVD_B(1024)
 
#define REG32_RSVD_2K   REG32_RSVD_B(2048)
 
#define REG32_RSVD_4K   REG32_RSVD_B(4096)
 
#define REG32_RSVD_8K   REG32_RSVD_B(8192)
 
#define REG32_RSVD_16K   REG32_RSVD_B(16 * 1024)
 
#define REG32_RSVD_32K   REG32_RSVD_B(32 * 1024)
 
#define REG32_RSVD_64K   REG32_RSVD_B(64 * 1024)
 
#define REG32_RSVD_128K   REG32_RSVD_B(128 * 1024)
 
#define REG32_RSVD_256K   REG32_RSVD_B(256 * 1024)
 
#define REG32_RSVD_512K   REG32_RSVD_B(512 * 1024)
 
#define REG32_RSVD_1M   REG32_RSVD_B(1024 * 1024)
 

Enumerations

standard error code
enum  vsf_err_t {
  VSF_ERR_NOT_READY =1 ,
  VSF_ERR_NONE =0 ,
  VSF_ERR_UNKNOWN =-1 ,
  VSF_ERR_NOT_SUPPORT =-2 ,
  VSF_ERR_NOT_AVAILABLE =-4 ,
  VSF_ERR_NOT_ACCESSABLE =-5 ,
  VSF_ERR_NOT_ACCESSIBLE = VSF_ERR_NOT_ACCESSABLE ,
  VSF_ERR_NOT_ENOUGH_RESOURCES =-6 ,
  VSF_ERR_FAIL =-7 ,
  VSF_ERR_INVALID_PARAMETER =-8 ,
  VSF_ERR_INVALID_RANGE =-9 ,
  VSF_ERR_INVALID_PTR =-10 ,
  VSF_ERR_INVALID_KEY =-11 ,
  VSF_ERR_IO =-12 ,
  VSF_ERR_ALREADY_EXISTS =-13 ,
  VSF_ERR_REQ_ALREADY_REGISTERED =-13 ,
  VSF_ERR_BUG =-14 ,
  VSF_ERR_OVERRUN =-15 ,
  VSF_ERR_PROVIDED_RESOURCE_NOT_SUFFICIENT =-17 ,
  VSF_ERR_PROVIDED_RESOURCE_NOT_ALIGNED =-18 ,
  VSF_ERR_TIMEOUT =-19 ,
  VSF_ERR_BUSY =-20
}
 
finit state machine state
enum  fsm_rt_t {
  fsm_rt_err = -1 ,
  fsm_rt_cpl = 0 ,
  fsm_rt_on_going = 1 ,
  fsm_rt_yield = 1 ,
  fsm_rt_wait_for_obj = 2 ,
  fsm_rt_wait_for_evt = 2 ,
  fsm_rt_wfe = 2 ,
  fsm_rt_asyn = 3 ,
  fsm_rt_user = 4
}
 

Functions

void vsf_trace_assert (const char *expr, const char *file, int line, const char *func)
 system macros
 

Macro Definition Documentation

◆ ENABLED

#define ENABLED   1

◆ DISABLED

#define DISABLED   0

◆ __FSM_RT_TYPE__

#define __FSM_RT_TYPE__

◆ VSF_ASSERT

#define VSF_ASSERT ( __EXPR)
Value:
((__EXPR) \
? (void)0 \
: vsf_trace_assert(#__EXPR, __FILE__, __LINE__, __FUNCTION__))
void vsf_trace_assert(const char *expr, const char *file, int line, const char *func)
system macros
Definition vsf_trace.c:389

◆ __VSF_STR

#define __VSF_STR ( __STRING)
Value:
#__STRING

◆ VSF_STR

#define VSF_STR ( __STRING)
Value:
__VSF_STR(__STRING)
#define __VSF_STR(__STRING)
Definition __type.h:137

◆ vsf_max

#define vsf_max ( __a,
__b )
Value:
(((__a) > (__b)) ? (__a) : (__b))

◆ vsf_min

#define vsf_min ( __a,
__b )
Value:
(((__a) < (__b)) ? (__a) : (__b))

◆ dimof

#define dimof ( __arr)
Value:
(sizeof(__arr) / sizeof((__arr)[0]))

◆ vsf_offset_of

#define vsf_offset_of ( __type,
__member )
Value:
(uintptr_t)(&(((__type *)0)->__member))
#define __type
Definition hci_transport_aic8800.c:556
uint32_t uintptr_t
Definition stdint.h:38

◆ vsf_container_of

#define vsf_container_of ( __ptr,
__type,
__member )
Value:
((__type *)((uintptr_t)(__ptr) - vsf_offset_of(__type, __member)))
#define vsf_offset_of(__type, __member)
Definition __type.h:162

◆ vsf_safe_container_of

#define vsf_safe_container_of ( __ptr,
__type,
__member )
Value:
(__ptr ? vsf_container_of(__ptr, __type, __member) : NULL)
#define vsf_container_of(__ptr, __type, __member)
Definition __type.h:164
#define NULL
Definition lvgl.h:26

◆ VSF_COMPATIBILITY

#define VSF_COMPATIBILITY   DISABLED

◆ container_of

#define container_of   vsf_container_of

◆ safe_container_of

#define safe_container_of   vsf_safe_container_of

◆ vsf_abs

#define vsf_abs ( __num)
Value:
(((__num) < 0) ? (-(__num)) : (__num))

◆ VSF_BIT

#define VSF_BIT ( __N)
Value:
(1UL << (__N))

◆ VSF_BITMASK

#define VSF_BITMASK ( __N)
Value:
(VSF_BIT(__N) - 1)
#define VSF_BIT(__N)
Definition __type.h:188

◆ VSF_UNUSED_PARAM

#define VSF_UNUSED_PARAM ( __VAL)
Value:
(void)(__VAL)

◆ VSF_STATIC_ASSERT0

#define VSF_STATIC_ASSERT0 ( __COND)
Value:
typedef int VSF_MACRO_SAFE_NAME(STATIC_ASSERT)[(__COND) * 2 - 1]
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32

◆ VSF_STATIC_ASSERT1

#define VSF_STATIC_ASSERT1 ( __COND,
__MSG )
Value:
typedef int VSF_MACRO_SAFE_NAME(VSF_MCONNECT(STATIC_ASSERT, ____, __MSG))[(__COND) * 2 - 1]
struct VSF_MCONNECT(VSF_DMA_CFG_IMP_PREFIX, _dma_channel_t)
Definition dma.c:57

◆ VSF_STATIC_ASSERT

#define VSF_STATIC_ASSERT ( __COND,
... )
Value:
__PLOOC_EVAL(VSF_STATIC_ASSERT, __VA_ARGS__)((__COND), ##__VA_ARGS__)
#define VSF_STATIC_ASSERT(__COND,...)
Definition __type.h:199

◆ __REG_TYPE__

#define __REG_TYPE__

◆ __REG_CONNECT

#define __REG_CONNECT ( __A,
__B )
Value:
__A##__B

◆ __REG_RSVD_NAME

#define __REG_RSVD_NAME ( __NAME)
Value:
__REG_CONNECT(__unused_, __NAME)
#define __REG_CONNECT(__A, __B)
Definition __type.h:244

◆ ____REG_RSVD

#define ____REG_RSVD ( __NAME,
__BIT )
Value:
reg##__BIT##_t __NAME : __BIT;
class vsf_$ * reg

◆ ____REG_RSVD_N

#define ____REG_RSVD_N ( __NAME,
__BIT,
__N )
Value:
reg##__BIT##_t __NAME[__N];

◆ __REG_RSVD

#define __REG_RSVD ( __BIT)
Value:
#define ____REG_RSVD(__NAME, __BIT)
Definition __type.h:247
#define REG_RSVD_NAME
Definition __type.h:254

◆ __REG_RSVD_N

#define __REG_RSVD_N ( __BIT,
__N )
Value:
#define ____REG_RSVD_N(__NAME, __BIT, __N)
Definition __type.h:249

◆ REG_RSVD_NAME

#define REG_RSVD_NAME   __REG_RSVD_NAME(__LINE__)

◆ REG_RSVD

#define REG_RSVD ( __BIT)
Value:
__REG_RSVD(__BIT)
#define __REG_RSVD(__BIT)
Definition __type.h:251

◆ REG_RSVD_N

#define REG_RSVD_N ( __BIT,
__N )
Value:
__REG_RSVD_N(__BIT, (__N))
#define __REG_RSVD_N(__BIT, __N)
Definition __type.h:252

◆ REG_RSVD_U8

#define REG_RSVD_U8   REG_RSVD(8)

◆ REG_RSVD_U16

#define REG_RSVD_U16   REG_RSVD(16)

◆ REG_RSVD_U32

#define REG_RSVD_U32   REG_RSVD(32)

◆ REG_RSVD_U8N

#define REG_RSVD_U8N ( __N)
Value:
REG_RSVD_N(8, (__N))
#define REG_RSVD_N(__BIT, __N)
Definition __type.h:256

◆ REG_RSVD_U16N

#define REG_RSVD_U16N ( __N)
Value:
REG_RSVD_N(16, (__N))

◆ REG_RSVD_U32N

#define REG_RSVD_U32N ( __N)
Value:
REG_RSVD_N(32, (__N))

◆ REG8_RSVD_N

#define REG8_RSVD_N ( __N)
Value:
#define REG_RSVD_U8N(__N)
Definition __type.h:262

◆ REG8_RSVD_B

#define REG8_RSVD_B ( __BYTE_CNT)
Value:
REG8_RSVD_N(__BYTE_CNT)
#define REG8_RSVD_N(__N)
Definition __type.h:266

◆ REG8_RSVD_8B

#define REG8_RSVD_8B   REG8_RSVD_B(8)

◆ REG8_RSVD_16B

#define REG8_RSVD_16B   REG8_RSVD_B(16)

◆ REG8_RSVD_32B

#define REG8_RSVD_32B   REG8_RSVD_B(32)

◆ REG8_RSVD_64B

#define REG8_RSVD_64B   REG8_RSVD_B(64)

◆ REG8_RSVD_128B

#define REG8_RSVD_128B   REG8_RSVD_B(128)

◆ REG8_RSVD_256B

#define REG8_RSVD_256B   REG8_RSVD_B(256)

◆ REG8_RSVD_512B

#define REG8_RSVD_512B   REG8_RSVD_B(512)

◆ REG8_RSVD_1K

#define REG8_RSVD_1K   REG8_RSVD_B(1024)

◆ REG8_RSVD_2K

#define REG8_RSVD_2K   REG8_RSVD_B(2048)

◆ REG8_RSVD_4K

#define REG8_RSVD_4K   REG8_RSVD_B(4096)

◆ REG8_RSVD_8K

#define REG8_RSVD_8K   REG8_RSVD_B(8192)

◆ REG8_RSVD_16K

#define REG8_RSVD_16K   REG8_RSVD_B(16 * 1024)

◆ REG8_RSVD_32K

#define REG8_RSVD_32K   REG8_RSVD_B(32 * 1024)

◆ REG8_RSVD_64K

#define REG8_RSVD_64K   REG8_RSVD_B(64 * 1024)

◆ REG8_RSVD_128K

#define REG8_RSVD_128K   REG8_RSVD_B(128 * 1024)

◆ REG8_RSVD_256K

#define REG8_RSVD_256K   REG8_RSVD_B(256 * 1024)

◆ REG8_RSVD_512K

#define REG8_RSVD_512K   REG8_RSVD_B(512 * 1024)

◆ REG8_RSVD_1M

#define REG8_RSVD_1M   REG8_RSVD_B(1024 * 1024)

◆ REG16_RSVD_N

#define REG16_RSVD_N ( __N)
Value:
#define REG_RSVD_U16N(__N)
Definition __type.h:263

◆ REG16_RSVD_B

#define REG16_RSVD_B ( __BYTE_CNT)
Value:
REG16_RSVD_N(__BYTE_CNT >> 1)
#define REG16_RSVD_N(__N)
Definition __type.h:287

◆ REG16_RSVD_8B

#define REG16_RSVD_8B   REG16_RSVD_B(8)

◆ REG16_RSVD_16B

#define REG16_RSVD_16B   REG16_RSVD_B(16)

◆ REG16_RSVD_32B

#define REG16_RSVD_32B   REG16_RSVD_B(32)

◆ REG16_RSVD_64B

#define REG16_RSVD_64B   REG16_RSVD_B(64)

◆ REG16_RSVD_128B

#define REG16_RSVD_128B   REG16_RSVD_B(128)

◆ REG16_RSVD_256B

#define REG16_RSVD_256B   REG16_RSVD_B(256)

◆ REG16_RSVD_512B

#define REG16_RSVD_512B   REG16_RSVD_B(512)

◆ REG16_RSVD_1K

#define REG16_RSVD_1K   REG16_RSVD_B(1024)

◆ REG16_RSVD_2K

#define REG16_RSVD_2K   REG16_RSVD_B(2048)

◆ REG16_RSVD_4K

#define REG16_RSVD_4K   REG16_RSVD_B(4096)

◆ REG16_RSVD_8K

#define REG16_RSVD_8K   REG16_RSVD_B(8192)

◆ REG16_RSVD_16K

#define REG16_RSVD_16K   REG16_RSVD_B(16 * 1024)

◆ REG16_RSVD_32K

#define REG16_RSVD_32K   REG16_RSVD_B(32 * 1024)

◆ REG16_RSVD_64K

#define REG16_RSVD_64K   REG16_RSVD_B(64 * 1024)

◆ REG16_RSVD_128K

#define REG16_RSVD_128K   REG16_RSVD_B(128 * 1024)

◆ REG16_RSVD_256K

#define REG16_RSVD_256K   REG16_RSVD_B(256 * 1024)

◆ REG16_RSVD_512K

#define REG16_RSVD_512K   REG16_RSVD_B(512 * 1024)

◆ REG16_RSVD_1M

#define REG16_RSVD_1M   REG16_RSVD_B(1024 * 1024)

◆ REG32_RSVD_N

#define REG32_RSVD_N ( __N)
Value:
#define REG_RSVD_U32N(__N)
Definition __type.h:264

◆ REG32_RSVD_B

#define REG32_RSVD_B ( __BYTE_CNT)
Value:
REG_RSVD_U32N(__BYTE_CNT >> 2)

◆ REG32_RSVD_8B

#define REG32_RSVD_8B   REG32_RSVD_B(8)

◆ REG32_RSVD_16B

#define REG32_RSVD_16B   REG32_RSVD_B(16)

◆ REG32_RSVD_32B

#define REG32_RSVD_32B   REG32_RSVD_B(32)

◆ REG32_RSVD_64B

#define REG32_RSVD_64B   REG32_RSVD_B(64)

◆ REG32_RSVD_128B

#define REG32_RSVD_128B   REG32_RSVD_B(128)

◆ REG32_RSVD_256B

#define REG32_RSVD_256B   REG32_RSVD_B(256)

◆ REG32_RSVD_512B

#define REG32_RSVD_512B   REG32_RSVD_B(512)

◆ REG32_RSVD_1K

#define REG32_RSVD_1K   REG32_RSVD_B(1024)

◆ REG32_RSVD_2K

#define REG32_RSVD_2K   REG32_RSVD_B(2048)

◆ REG32_RSVD_4K

#define REG32_RSVD_4K   REG32_RSVD_B(4096)

◆ REG32_RSVD_8K

#define REG32_RSVD_8K   REG32_RSVD_B(8192)

◆ REG32_RSVD_16K

#define REG32_RSVD_16K   REG32_RSVD_B(16 * 1024)

◆ REG32_RSVD_32K

#define REG32_RSVD_32K   REG32_RSVD_B(32 * 1024)

◆ REG32_RSVD_64K

#define REG32_RSVD_64K   REG32_RSVD_B(64 * 1024)

◆ REG32_RSVD_128K

#define REG32_RSVD_128K   REG32_RSVD_B(128 * 1024)

◆ REG32_RSVD_256K

#define REG32_RSVD_256K   REG32_RSVD_B(256 * 1024)

◆ REG32_RSVD_512K

#define REG32_RSVD_512K   REG32_RSVD_B(512 * 1024)

◆ REG32_RSVD_1M

#define REG32_RSVD_1M   REG32_RSVD_B(1024 * 1024)

Enumeration Type Documentation

◆ vsf_err_t

enum vsf_err_t
Enumerator
VSF_ERR_NOT_READY 

service not ready yet

VSF_ERR_NONE 

none error

VSF_ERR_UNKNOWN 

unknown error

VSF_ERR_NOT_SUPPORT 

function not supported

VSF_ERR_NOT_AVAILABLE 

service not available

VSF_ERR_NOT_ACCESSABLE 

target not acceesable

VSF_ERR_NOT_ACCESSIBLE 
VSF_ERR_NOT_ENOUGH_RESOURCES 

no enough resources

VSF_ERR_FAIL 

failed

VSF_ERR_INVALID_PARAMETER 

invalid parameter

VSF_ERR_INVALID_RANGE 

invalid range

VSF_ERR_INVALID_PTR 

invalid pointer

VSF_ERR_INVALID_KEY 

invalid key

VSF_ERR_IO 

IO error.

VSF_ERR_ALREADY_EXISTS 

already exists

VSF_ERR_REQ_ALREADY_REGISTERED 

request all ready exist

VSF_ERR_BUG 

bug

VSF_ERR_OVERRUN 

overrun

VSF_ERR_PROVIDED_RESOURCE_NOT_SUFFICIENT 

the resource provided by user is not sufficient

VSF_ERR_PROVIDED_RESOURCE_NOT_ALIGNED 

the provided resource is not aligned to certain size (2^N)

VSF_ERR_TIMEOUT 
VSF_ERR_BUSY 

◆ fsm_rt_t

enum fsm_rt_t
Enumerator
fsm_rt_err 

fsm error, error code can be get from other interface

fsm_rt_cpl 

fsm complete

fsm_rt_on_going 

fsm on-going

fsm_rt_yield 
fsm_rt_wait_for_obj 

fsm wait for object

fsm_rt_wait_for_evt 
fsm_rt_wfe 
fsm_rt_asyn 

fsm asynchronose complete, you can check it later.

fsm_rt_user 

Function Documentation

◆ vsf_trace_assert()

void vsf_trace_assert ( const char * expr,
const char * file,
int line,
const char * func )
extern

system macros

Note
IMPORTANT ! - Every time when you try to add some 'common' header file including ! into __type.h, please take more time to think your decision, and ! make sure that the header file is available in all the compiler ! environment and platforms. ! ! - If you know what you are doing, and there is still some concerns ! which others need to know, please DO add necessary information ! besides the "#include <xxxx>" ! ! - If you want to introduce a system header file (as part of c ! standard) and you haven't encounter any known case where the header ! file is absent, we can assume that it is safe to put it in __type.h. ! If you do encounter scenarios where the header files is missing, ! please move it to the platform specific type.h
Generated from commit: vsfteam/vsf@606aeaf