Bluetooth Host Stack solution
Bluetooth Platform Trace

General Description

ENABLE the below definition CYBT_PLATFORM_TRACE_ENABLE to have logging functionality by using trace marcos in this file.

Data Structures

struct  cybt_platform_trace_cb_t
 trace control block More...
 

Macros

#define CYBT_PLATFORM_TRACE_ENABLE   1
 
#define INITIAL_TRACE_LEVEL_MAIN   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_SPIF   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_HCITX_TASK   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_HCIRX_TASK   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_HCI_DRV   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_HCI_LOG   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_MEMORY   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_PRM   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_STACK   (CYBT_TRACE_LEVEL_ERROR)
 
#define INITIAL_TRACE_LEVEL_APP   (CYBT_TRACE_LEVEL_ERROR)
 
#define CYBT_TRACE_ID_MAIN   (0)
 trace category id
 
#define CYBT_TRACE_ID_SPIF   (1)
 
#define CYBT_TRACE_ID_HCITX_TASK   (2)
 
#define CYBT_TRACE_ID_HCIRX_TASK   (3)
 
#define CYBT_TRACE_ID_HCI_DRV   (4)
 
#define CYBT_TRACE_ID_HCI_LOG   (5)
 
#define CYBT_TRACE_ID_MEMORY   (6)
 
#define CYBT_TRACE_ID_PRM   (7)
 
#define CYBT_TRACE_ID_STACK   (8)
 
#define CYBT_TRACE_ID_APP   (9)
 
#define CYBT_TRACE_ID_MAX   (10)
 
#define CYBT_TRACE_ID_ALL   (0xFF)
 
#define CYBT_TRACE_LEVEL_NONE   (0)
 trace level
 
#define CYBT_TRACE_LEVEL_ERROR   (1)
 
#define CYBT_TRACE_LEVEL_WARNING   (2)
 
#define CYBT_TRACE_LEVEL_API   (3)
 
#define CYBT_TRACE_LEVEL_EVENT   (4)
 
#define CYBT_TRACE_LEVEL_DEBUG   (5)
 
#define CYBT_TRACE_LEVEL_MAX   (6)
 
#define MAIN_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MAIN] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define MAIN_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MAIN] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define MAIN_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MAIN] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define MAIN_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MAIN] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define MAIN_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MAIN] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define SPIF_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_SPIF] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define SPIF_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_SPIF] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define SPIF_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_SPIF] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define SPIF_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_SPIF] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define SPIF_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_SPIF] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCITXTASK_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCITX_TASK] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCITXTASK_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCITX_TASK] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCITXTASK_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCITX_TASK] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCITXTASK_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCITX_TASK] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCITXTASK_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCITX_TASK] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIRXTASK_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCIRX_TASK] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIRXTASK_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCIRX_TASK] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIRXTASK_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCIRX_TASK] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIRXTASK_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCIRX_TASK] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIRXTASK_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCIRX_TASK] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIDRV_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_DRV] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIDRV_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_DRV] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIDRV_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_DRV] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIDRV_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_DRV] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCIDRV_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_DRV] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCILOG_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_LOG] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCILOG_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_LOG] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCILOG_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_LOG] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCILOG_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_LOG] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define HCILOG_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_HCI_LOG] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define MEM_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MEMORY] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define MEM_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MEMORY] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define MEM_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MEMORY] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define MEM_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MEMORY] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define MEM_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_MEMORY] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define PRM_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_PRM] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define PRM_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_PRM] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define PRM_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_PRM] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define PRM_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_PRM] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define PRM_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_PRM] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define STACK_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_STACK] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define STACK_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_STACK] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define STACK_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_STACK] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define STACK_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_STACK] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define STACK_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_STACK] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 
#define APP_TRACE_ERROR(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_APP] >= CYBT_TRACE_LEVEL_ERROR) cybt_platform_log_print(__VA_ARGS__);}
 
#define APP_TRACE_WARNING(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_APP] >= CYBT_TRACE_LEVEL_WARNING) cybt_platform_log_print(__VA_ARGS__);}
 
#define APP_TRACE_API(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_APP] >= CYBT_TRACE_LEVEL_API) cybt_platform_log_print(__VA_ARGS__);}
 
#define APP_TRACE_EVENT(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_APP] >= CYBT_TRACE_LEVEL_EVENT) cybt_platform_log_print(__VA_ARGS__);}
 
#define APP_TRACE_DEBUG(...)   {if (trace_cb.trace_level[CYBT_TRACE_ID_APP] >= CYBT_TRACE_LEVEL_DEBUG) cybt_platform_log_print(__VA_ARGS__);}
 

Typedefs

typedef uint8_t cybt_trace_id_t
 
typedef uint8_t cybt_trace_level_t
 

Functions

void cybt_platform_log_print (const char *fmt_str,...)
 
void cybt_platform_set_trace_level (cybt_trace_id_t id, cybt_trace_level_t level)
 Set the trace level for trace categories id. More...
 

Variables

cybt_platform_trace_cb_t trace_cb
 

Function Documentation

◆ cybt_platform_set_trace_level()

void cybt_platform_set_trace_level ( cybt_trace_id_t  id,
cybt_trace_level_t  level 
)

Set the trace level for trace categories id.

Parameters
[in]id: trace id, CYBT_TRACE_ID_ALL for all categories
[in]level: trace level
Returns
void