VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_trace.h File Reference
#include "service/vsf_service_cfg.h"
#include "utilities/vsf_utilities.h"
#include "utilities/ooc_class.h"
#include <stdarg.h>

Go to the source code of this file.

Data Structures

class  vsf_bgtrace_t
 
struct  vsf_trace_vplt_t
 

Macros

#define VSF_TRACE_CFG_LINEEND   "\r\n"
 
#define VSF_TRACE_CFG_DEFAULT_LEVEL   VSF_TRACE_INFO
 
#define VSF_TRACE_DF_DS(n)   (((n) & 0xFF) << 0)
 
#define VSF_TRACE_DF_DPL(n)   (((n) & 0xFF) << 8)
 
#define VSF_TRACE_DF_ADDR   (1UL << 16)
 
#define VSF_TRACE_DF_CHAR   (1UL << 17)
 
#define VSF_TRACE_DF_NEWLINE   (1UL << 18)
 
#define VSF_TRACE_DF_U8_16   (VSF_TRACE_DF_DS(1) | VSF_TRACE_DF_DPL(16))
 
#define VSF_TRACE_DF_U8_16_A   (VSF_TRACE_DF_U8_16 | VSF_TRACE_DF_ADDR)
 
#define VSF_TRACE_DF_U8_16_AC   (VSF_TRACE_DF_U8_16_A | VSF_TRACE_DF_CHAR)
 
#define VSF_TRACE_DF_U8_16_ACN   (VSF_TRACE_DF_U8_16_AC | VSF_TRACE_DF_NEWLINE)
 
#define VSF_TRACE_DF_U8_16_AN   (VSF_TRACE_DF_U8_16_A | VSF_TRACE_DF_NEWLINE)
 
#define VSF_TRACE_DF_U8_16_N   (VSF_TRACE_DF_U8_16 | VSF_TRACE_DF_NEWLINE)
 
#define VSF_TRACE_DF_DEFAULT   VSF_TRACE_DF_U8_16_ACN
 
#define VSF_TRACE_POINTER_HEX   "%p"
 
#define vsf_trace_print_mem   vsf_trace_buffer
 
#define vsf_trace_init(__stream)   __vsf_trace_init((vsf_stream_t *)(__stream))
 
#define vsf_trace_info(...)   vsf_trace(VSF_TRACE_INFO, __VA_ARGS__)
 
#define vsf_trace_warning(...)   vsf_trace(VSF_TRACE_WARNING, __VA_ARGS__)
 
#define vsf_trace_error(...)   vsf_trace(VSF_TRACE_ERROR, __VA_ARGS__)
 
#define vsf_trace_debug(...)   vsf_trace(VSF_TRACE_DEBUG, __VA_ARGS__)
 
#define __vsf_bgtrace_type(__name)   __name##_bgtrace_t
 
#define vsf_bgtrace_type(__name)   __vsf_bgtrace_type(__name)
 
#define __vsf_bgtrace_etype(__name)   __name##_bgtrace_ele_t
 
#define vsf_bgtrace_etype(__name)   __vsf_bgtrace_etype(__name)
 
#define __declare_bgtrace(__name)   vsf_dcl_class(vsf_bgtrace_type(__name))
 
#define __define_bgtrace(__name, __ele_num, ...)
 
#define declare_bgtrace(__name)   __declare_bgtrace(__name)
 
#define dcl_bgtrace(__name)   declare_bgtrace(__name)
 
#define define_bgtrace(__name, __ele_num, ...)    __define_bgtrace(__name, (__ele_num), __VA_ARGS__)
 
#define def_bgtrace(__name, __ele_num, ...)    define_bgtrace(__name, (__ele_num), __VA_ARGS__)
 
#define __describe_bgtrace(__name, __ele_num, __print_element, ...)
 
#define describe_bgtrace(__name, __ele_num, __print_element, ...)    __describe_bgtrace(__name, (__ele_num), (__print_element), __VA_ARGS__)
 
#define __vsf_trace_buffer3(__level, __buffer, __len)    __vsf_trace_buffer((__level), (__buffer), (__len), VSF_TRACE_DF_DEFAULT)
 
#define __vsf_trace_buffer4(__level, __buffer, __len, __flag)    __vsf_trace_buffer((__level), (__buffer), (__len), (__flag))
 
#define vsf_trace_buffer(__level, __buffer, __len, ...)
 

Typedefs

typedef struct vsf_stream_t vsf_stream_t
 
typedef enum vsf_trace_level_t vsf_trace_level_t
 
typedef struct vsf_trace_vplt_t vsf_trace_vplt_t
 

Enumerations

enum  vsf_trace_level_t {
  VSF_TRACE_NONE ,
  VSF_TRACE_ERROR ,
  VSF_TRACE_INFO ,
  VSF_TRACE_WARNING ,
  VSF_TRACE_DEBUG ,
  VSF_TRACE_LEVEL_NUM
}
 

Functions

void __vsf_trace_init (vsf_stream_t *stream)
 
void vsf_trace_fini (void)
 
void __vsf_trace_buffer (vsf_trace_level_t level, void *buffer, uint_fast16_t len, uint_fast32_t flag)
 
void vsf_trace_string (vsf_trace_level_t level, const char *str)
 
void vsf_trace_arg (vsf_trace_level_t level, const char *format, va_list arg)
 
void vsf_trace (vsf_trace_level_t level, const char *format,...)
 
uint_fast32_t __vsf_trace_output (const char *buff, uint_fast32_t size)
 
void vsf_trace_assert (const char *expr, const char *file, int line, const char *func)
 
void vsf_trace_dump_stack (void)
 
void vsf_bgtrace_clear (vsf_bgtrace_t *bgtrace)
 
uint32_t vsf_bgtrace_total (vsf_bgtrace_t *bgtrace)
 
void vsf_bgtrace_append (vsf_bgtrace_t *bgtrace, void *element)
 
void vsf_bgtrace_print (vsf_bgtrace_t *bgtrace, int cnt)
 

Variables

__VSF_VPLT_DECORATOR__ vsf_trace_vplt_t vsf_trace_vplt
 

Macro Definition Documentation

◆ VSF_TRACE_CFG_LINEEND

#define VSF_TRACE_CFG_LINEEND   "\r\n"

◆ VSF_TRACE_CFG_DEFAULT_LEVEL

#define VSF_TRACE_CFG_DEFAULT_LEVEL   VSF_TRACE_INFO

◆ VSF_TRACE_DF_DS

#define VSF_TRACE_DF_DS (   n)    (((n) & 0xFF) << 0)

◆ VSF_TRACE_DF_DPL

#define VSF_TRACE_DF_DPL (   n)    (((n) & 0xFF) << 8)

◆ VSF_TRACE_DF_ADDR

#define VSF_TRACE_DF_ADDR   (1UL << 16)

◆ VSF_TRACE_DF_CHAR

#define VSF_TRACE_DF_CHAR   (1UL << 17)

◆ VSF_TRACE_DF_NEWLINE

#define VSF_TRACE_DF_NEWLINE   (1UL << 18)

◆ VSF_TRACE_DF_U8_16

#define VSF_TRACE_DF_U8_16   (VSF_TRACE_DF_DS(1) | VSF_TRACE_DF_DPL(16))

◆ VSF_TRACE_DF_U8_16_A

#define VSF_TRACE_DF_U8_16_A   (VSF_TRACE_DF_U8_16 | VSF_TRACE_DF_ADDR)

◆ VSF_TRACE_DF_U8_16_AC

#define VSF_TRACE_DF_U8_16_AC   (VSF_TRACE_DF_U8_16_A | VSF_TRACE_DF_CHAR)

◆ VSF_TRACE_DF_U8_16_ACN

#define VSF_TRACE_DF_U8_16_ACN   (VSF_TRACE_DF_U8_16_AC | VSF_TRACE_DF_NEWLINE)

◆ VSF_TRACE_DF_U8_16_AN

#define VSF_TRACE_DF_U8_16_AN   (VSF_TRACE_DF_U8_16_A | VSF_TRACE_DF_NEWLINE)

◆ VSF_TRACE_DF_U8_16_N

#define VSF_TRACE_DF_U8_16_N   (VSF_TRACE_DF_U8_16 | VSF_TRACE_DF_NEWLINE)

◆ VSF_TRACE_DF_DEFAULT

#define VSF_TRACE_DF_DEFAULT   VSF_TRACE_DF_U8_16_ACN

◆ VSF_TRACE_POINTER_HEX

#define VSF_TRACE_POINTER_HEX   "%p"

◆ vsf_trace_print_mem

#define vsf_trace_print_mem   vsf_trace_buffer

◆ vsf_trace_init

#define vsf_trace_init (   __stream)    __vsf_trace_init((vsf_stream_t *)(__stream))

◆ vsf_trace_info

#define vsf_trace_info (   ...)    vsf_trace(VSF_TRACE_INFO, __VA_ARGS__)

◆ vsf_trace_warning

#define vsf_trace_warning (   ...)    vsf_trace(VSF_TRACE_WARNING, __VA_ARGS__)

◆ vsf_trace_error

#define vsf_trace_error (   ...)    vsf_trace(VSF_TRACE_ERROR, __VA_ARGS__)

◆ vsf_trace_debug

#define vsf_trace_debug (   ...)    vsf_trace(VSF_TRACE_DEBUG, __VA_ARGS__)

◆ __vsf_bgtrace_type

#define __vsf_bgtrace_type (   __name)    __name##_bgtrace_t

◆ vsf_bgtrace_type

#define vsf_bgtrace_type (   __name)    __vsf_bgtrace_type(__name)

◆ __vsf_bgtrace_etype

#define __vsf_bgtrace_etype (   __name)    __name##_bgtrace_ele_t

◆ vsf_bgtrace_etype

#define vsf_bgtrace_etype (   __name)    __vsf_bgtrace_etype(__name)

◆ __declare_bgtrace

#define __declare_bgtrace (   __name)    vsf_dcl_class(vsf_bgtrace_type(__name))

◆ __define_bgtrace

#define __define_bgtrace (   __name,
  __ele_num,
  ... 
)
Value:
typedef struct vsf_bgtrace_etype(__name) { \
__VA_ARGS__ \
vsf_class(vsf_bgtrace_type(__name)) { \
public_member( \
implement(vsf_bgtrace_t) \
vsf_bgtrace_etype(__name) __elements[__ele_num]; \
) \
};
Definition vsf_trace.h:145
#define __name
Definition hci_transport_aic8800.c:552
#define vsf_bgtrace_type(__name)
Definition vsf_trace.h:97
#define vsf_bgtrace_etype(__name)
Definition vsf_trace.h:99

◆ declare_bgtrace

#define declare_bgtrace (   __name)    __declare_bgtrace(__name)

◆ dcl_bgtrace

#define dcl_bgtrace (   __name)    declare_bgtrace(__name)

◆ define_bgtrace

#define define_bgtrace (   __name,
  __ele_num,
  ... 
)     __define_bgtrace(__name, (__ele_num), __VA_ARGS__)

◆ def_bgtrace

#define def_bgtrace (   __name,
  __ele_num,
  ... 
)     define_bgtrace(__name, (__ele_num), __VA_ARGS__)

◆ __describe_bgtrace

#define __describe_bgtrace (   __name,
  __ele_num,
  __print_element,
  ... 
)
Value:
define_bgtrace(__name, (__ele_num), __VA_ARGS__) \
vsf_bgtrace_type(__name) __name = { \
.ele_num = (__ele_num), \
.ele_size = sizeof(vsf_bgtrace_etype(__name)), \
.elements = (void *)__name.__elements, \
.print_element = (void (*)(uint16_t pos, void *element))(__print_element),\
};
unsigned short uint16_t
Definition stdint.h:7
#define declare_bgtrace(__name)
Definition vsf_trace.h:113

◆ describe_bgtrace

#define describe_bgtrace (   __name,
  __ele_num,
  __print_element,
  ... 
)     __describe_bgtrace(__name, (__ele_num), (__print_element), __VA_ARGS__)

◆ __vsf_trace_buffer3

#define __vsf_trace_buffer3 (   __level,
  __buffer,
  __len 
)     __vsf_trace_buffer((__level), (__buffer), (__len), VSF_TRACE_DF_DEFAULT)

◆ __vsf_trace_buffer4

#define __vsf_trace_buffer4 (   __level,
  __buffer,
  __len,
  __flag 
)     __vsf_trace_buffer((__level), (__buffer), (__len), (__flag))

◆ vsf_trace_buffer

#define vsf_trace_buffer (   __level,
  __buffer,
  __len,
  ... 
)
Value:
__PLOOC_EVAL(__vsf_trace_buffer, (__level), (__buffer), (__len), ##__VA_ARGS__)\
((__level), (__buffer), (__len), ##__VA_ARGS__)
void __vsf_trace_buffer(vsf_trace_level_t level, void *buffer, uint_fast16_t len, uint_fast32_t flag)
Definition vsf_trace.c:248

Typedef Documentation

◆ vsf_stream_t

typedef struct vsf_stream_t vsf_stream_t

◆ vsf_trace_level_t

◆ vsf_trace_vplt_t

Enumeration Type Documentation

◆ vsf_trace_level_t

Enumerator
VSF_TRACE_NONE 
VSF_TRACE_ERROR 
VSF_TRACE_INFO 
VSF_TRACE_WARNING 
VSF_TRACE_DEBUG 
VSF_TRACE_LEVEL_NUM 

Function Documentation

◆ __vsf_trace_init()

void __vsf_trace_init ( vsf_stream_t stream)
extern

◆ vsf_trace_fini()

void vsf_trace_fini ( void  )
extern

◆ __vsf_trace_buffer()

void __vsf_trace_buffer ( vsf_trace_level_t  level,
void *  buffer,
uint_fast16_t  len,
uint_fast32_t  flag 
)
extern

◆ vsf_trace_string()

void vsf_trace_string ( vsf_trace_level_t  level,
const char *  str 
)
extern

◆ vsf_trace_arg()

void vsf_trace_arg ( vsf_trace_level_t  level,
const char *  format,
va_list  arg 
)
extern

◆ vsf_trace()

void vsf_trace ( vsf_trace_level_t  level,
const char *  format,
  ... 
)
extern

◆ __vsf_trace_output()

uint_fast32_t __vsf_trace_output ( const char *  buff,
uint_fast32_t  size 
)
extern

◆ vsf_trace_assert()

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

◆ vsf_trace_dump_stack()

void vsf_trace_dump_stack ( void  )
extern

◆ vsf_bgtrace_clear()

void vsf_bgtrace_clear ( vsf_bgtrace_t bgtrace)
extern

◆ vsf_bgtrace_total()

uint32_t vsf_bgtrace_total ( vsf_bgtrace_t bgtrace)
extern

◆ vsf_bgtrace_append()

void vsf_bgtrace_append ( vsf_bgtrace_t bgtrace,
void *  element 
)
extern

◆ vsf_bgtrace_print()

void vsf_bgtrace_print ( vsf_bgtrace_t bgtrace,
int  cnt 
)
extern

Variable Documentation

◆ vsf_trace_vplt