35 #ifndef WSF_TRACE_ENABLED 37 #define WSF_TRACE_ENABLED FALSE 40 #ifndef WSF_TOKEN_ENABLED 42 #define WSF_TOKEN_ENABLED FALSE 69 void WsfTrace(
const char *pStr, ...);
135 #ifdef TOKEN_GENERATION 137 #define WSF_TOKEN(subsys, stat, msg) \ 138 __WSF_TOKEN_DEFINE__( \ 139 MODULE_ID, __LINE__, \ 143 #define WSF_TRACE0(subsys, stat, msg) WSF_TOKEN(subsys, stat, msg) 144 #define WSF_TRACE1(subsys, stat, msg, var1) WSF_TOKEN(subsys, stat, msg) 145 #define WSF_TRACE2(subsys, stat, msg, var1, var2) WSF_TOKEN(subsys, stat, msg) 146 #define WSF_TRACE3(subsys, stat, msg, var1, var2, var3) WSF_TOKEN(subsys, stat, msg) 148 #elif WSF_TRACE_ENABLED == TRUE 151 #define WSF_TRACE0(subsys, stat, msg) WsfTrace(msg) 153 #define WSF_TRACE1(subsys, stat, msg, var1) WsfTrace(msg, var1) 155 #define WSF_TRACE2(subsys, stat, msg, var1, var2) WsfTrace(msg, var1, var2) 157 #define WSF_TRACE3(subsys, stat, msg, var1, var2, var3) WsfTrace(msg, var1, var2, var3) 159 #elif WSF_TOKEN_ENABLED == TRUE 161 #define WSF_TRACE0(subsys, stat, msg) \ 162 WsfToken(((__LINE__ & 0xFFF) << 16) | MODULE_ID, 0) 163 #define WSF_TRACE1(subsys, stat, msg, var1) \ 164 WsfToken(((__LINE__ & 0xFFF) << 16) | MODULE_ID, (uint32_t)(var1)) 165 #define WSF_TRACE2(subsys, stat, msg, var1, var2) \ 166 WsfToken(((__LINE__ & 0xFFF) << 16) | MODULE_ID, (uint32_t)(((var2) << 16) | ((var1) & 0xFFFF))) 167 #define WSF_TRACE3(subsys, stat, msg, var1, var2, var3) \ 168 WsfToken(((__LINE__ & 0xFFF) << 16) | MODULE_ID, (uint32_t)((((var3) & 0xFFFF) << 16) | (((var2) & 0xFF) << 8) | ((var1) & 0xFF))) 172 #define WSF_TRACE0(subsys, stat, msg) 173 #define WSF_TRACE1(subsys, stat, msg, var1) 174 #define WSF_TRACE2(subsys, stat, msg, var1, var2) 175 #define WSF_TRACE3(subsys, stat, msg, var1, var2, var3) 180 #define WSF_TRACE_INFO0(msg) 182 #define WSF_TRACE_INFO1(msg, var1) 184 #define WSF_TRACE_INFO2(msg, var1, var2) 186 #define WSF_TRACE_INFO3(msg, var1, var2, var3) 188 #define WSF_TRACE_WARN0(msg) WSF_TRACE0("WSF", "WARN", msg) 190 #define WSF_TRACE_WARN1(msg, var1) WSF_TRACE1("WSF", "WARN", msg, var1) 192 #define WSF_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("WSF", "WARN", msg, var1, var2) 194 #define WSF_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("WSF", "WARN", msg, var1, var2, var3) 196 #define WSF_TRACE_ERR0(msg) WSF_TRACE0("WSF", "ERR", msg) 198 #define WSF_TRACE_ERR1(msg, var1) WSF_TRACE1("WSF", "ERR", msg, var1) 200 #define WSF_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("WSF", "ERR", msg, var1, var2) 202 #define WSF_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("WSF", "ERR", msg, var1, var2, var3) 204 #define WSF_TRACE_ALLOC0(msg) 206 #define WSF_TRACE_ALLOC1(msg, var1) 208 #define WSF_TRACE_ALLOC2(msg, var1, var2) 210 #define WSF_TRACE_ALLOC3(msg, var1, var2, var3) 212 #define WSF_TRACE_FREE0(msg) 214 #define WSF_TRACE_FREE1(msg, var1) 216 #define WSF_TRACE_FREE2(msg, var1, var2) 218 #define WSF_TRACE_FREE3(msg, var1, var2, var3) 220 #define WSF_TRACE_MSG0(msg) 222 #define WSF_TRACE_MSG1(msg, var1) 224 #define WSF_TRACE_MSG2(msg, var1, var2) 226 #define WSF_TRACE_MSG3(msg, var1, var2, var3) 229 #define HCI_TRACE_INFO0(msg) WSF_TRACE0("HCI", "INFO", msg) 231 #define HCI_TRACE_INFO1(msg, var1) WSF_TRACE1("HCI", "INFO", msg, var1) 233 #define HCI_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("HCI", "INFO", msg, var1, var2) 235 #define HCI_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("HCI", "INFO", msg, var1, var2, var3) 237 #define HCI_TRACE_WARN0(msg) WSF_TRACE0("HCI", "WARN", msg) 239 #define HCI_TRACE_WARN1(msg, var1) WSF_TRACE1("HCI", "WARN", msg, var1) 241 #define HCI_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("HCI", "WARN", msg, var1, var2) 243 #define HCI_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("HCI", "WARN", msg, var1, var2, var3) 245 #define HCI_TRACE_ERR0(msg) WSF_TRACE0("HCI", "ERR", msg) 247 #define HCI_TRACE_ERR1(msg, var1) WSF_TRACE1("HCI", "ERR", msg, var1) 249 #define HCI_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("HCI", "ERR", msg, var1, var2) 251 #define HCI_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("HCI", "ERR", msg, var1, var2, var3) 254 #define HCI_PDUMP_CMD(len, pBuf) 256 #define HCI_PDUMP_EVT(len, pBuf) 258 #define HCI_PDUMP_TX_ACL(len, pBuf) 260 #define HCI_PDUMP_RX_ACL(len, pBuf) 263 #define DM_TRACE_INFO0(msg) WSF_TRACE0("DM", "INFO", msg) 265 #define DM_TRACE_INFO1(msg, var1) WSF_TRACE1("DM", "INFO", msg, var1) 267 #define DM_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("DM", "INFO", msg, var1, var2) 269 #define DM_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("DM", "INFO", msg, var1, var2, var3) 271 #define DM_TRACE_WARN0(msg) WSF_TRACE0("DM", "WARN", msg) 273 #define DM_TRACE_WARN1(msg, var1) WSF_TRACE1("DM", "WARN", msg, var1) 275 #define DM_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("DM", "WARN", msg, var1, var2) 277 #define DM_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("DM", "WARN", msg, var1, var2, var3) 279 #define DM_TRACE_ERR0(msg) WSF_TRACE0("DM", "ERR", msg) 281 #define DM_TRACE_ERR1(msg, var1) WSF_TRACE1("DM", "ERR", msg, var1) 283 #define DM_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("DM", "ERR", msg, var1, var2) 285 #define DM_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("DM", "ERR", msg, var1, var2, var3) 287 #define DM_TRACE_ALLOC0(msg) WSF_TRACE0("DM", "ALLOC", msg) 289 #define DM_TRACE_ALLOC1(msg, var1) WSF_TRACE1("DM", "ALLOC", msg, var1) 291 #define DM_TRACE_ALLOC2(msg, var1, var2) WSF_TRACE2("DM", "ALLOC", msg, var1, var2) 293 #define DM_TRACE_ALLOC3(msg, var1, var2, var3) WSF_TRACE3("DM", "ALLOC", msg, var1, var2, var3) 295 #define DM_TRACE_FREE0(msg) WSF_TRACE0("DM", "FREE", msg) 297 #define DM_TRACE_FREE1(msg, var1) WSF_TRACE1("DM", "FREE", msg, var1) 299 #define DM_TRACE_FREE2(msg, var1, var2) WSF_TRACE2("DM", "FREE", msg, var1, var2) 301 #define DM_TRACE_FREE3(msg, var1, var2, var3) WSF_TRACE3("DM", "FREE", msg, var1, var2, var3) 304 #define L2C_TRACE_INFO0(msg) WSF_TRACE0("L2C", "INFO", msg) 306 #define L2C_TRACE_INFO1(msg, var1) WSF_TRACE1("L2C", "INFO", msg, var1) 308 #define L2C_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("L2C", "INFO", msg, var1, var2) 310 #define L2C_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("L2C", "INFO", msg, var1, var2, var3) 312 #define L2C_TRACE_WARN0(msg) WSF_TRACE0("L2C", "WARN", msg) 314 #define L2C_TRACE_WARN1(msg, var1) WSF_TRACE1("L2C", "WARN", msg, var1) 316 #define L2C_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("L2C", "WARN", msg, var1, var2) 318 #define L2C_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("L2C", "WARN", msg, var1, var2, var3) 320 #define L2C_TRACE_ERR0(msg) WSF_TRACE0("L2C", "ERR", msg) 322 #define L2C_TRACE_ERR1(msg, var1) WSF_TRACE1("L2C", "ERR", msg, var1) 324 #define L2C_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("L2C", "ERR", msg, var1, var2) 326 #define L2C_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("L2C", "ERR", msg, var1, var2, var3) 329 #define ATT_TRACE_INFO0(msg) WSF_TRACE0("ATT", "INFO", msg) 331 #define ATT_TRACE_INFO1(msg, var1) WSF_TRACE1("ATT", "INFO", msg, var1) 333 #define ATT_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("ATT", "INFO", msg, var1, var2) 335 #define ATT_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("ATT", "INFO", msg, var1, var2, var3) 337 #define ATT_TRACE_WARN0(msg) WSF_TRACE0("ATT", "WARN", msg) 339 #define ATT_TRACE_WARN1(msg, var1) WSF_TRACE1("ATT", "WARN", msg, var1) 341 #define ATT_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("ATT", "WARN", msg, var1, var2) 343 #define ATT_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("ATT", "WARN", msg, var1, var2, var3) 345 #define ATT_TRACE_ERR0(msg) WSF_TRACE0("ATT", "ERR", msg) 347 #define ATT_TRACE_ERR1(msg, var1) WSF_TRACE1("ATT", "ERR", msg, var1) 349 #define ATT_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("ATT", "ERR", msg, var1, var2) 351 #define ATT_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("ATT", "ERR", msg, var1, var2, var3) 354 #define SMP_TRACE_INFO0(msg) WSF_TRACE0("SMP", "INFO", msg) 356 #define SMP_TRACE_INFO1(msg, var1) WSF_TRACE1("SMP", "INFO", msg, var1) 358 #define SMP_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("SMP", "INFO", msg, var1, var2) 360 #define SMP_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("SMP", "INFO", msg, var1, var2, var3) 362 #define SMP_TRACE_WARN0(msg) WSF_TRACE0("SMP", "WARN", msg) 364 #define SMP_TRACE_WARN1(msg, var1) WSF_TRACE1("SMP", "WARN", msg, var1) 366 #define SMP_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("SMP", "WARN", msg, var1, var2) 368 #define SMP_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("SMP", "WARN", msg, var1, var2, var3) 370 #define SMP_TRACE_ERR0(msg) WSF_TRACE0("SMP", "ERR", msg) 372 #define SMP_TRACE_ERR1(msg, var1) WSF_TRACE1("SMP", "ERR", msg, var1) 374 #define SMP_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("SMP", "ERR", msg, var1, var2) 376 #define SMP_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("SMP", "ERR", msg, var1, var2, var3) 379 #define APP_TRACE_INFO0(msg) WSF_TRACE0("APP", "INFO", msg) 381 #define APP_TRACE_INFO1(msg, var1) WSF_TRACE1("APP", "INFO", msg, var1) 383 #define APP_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("APP", "INFO", msg, var1, var2) 385 #define APP_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("APP", "INFO", msg, var1, var2, var3) 387 #define APP_TRACE_WARN0(msg) WSF_TRACE0("APP", "WARN", msg) 389 #define APP_TRACE_WARN1(msg, var1) WSF_TRACE1("APP", "WARN", msg, var1) 391 #define APP_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("APP", "WARN", msg, var1, var2) 393 #define APP_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("APP", "WARN", msg, var1, var2, var3) 395 #define APP_TRACE_ERR0(msg) WSF_TRACE0("APP", "ERR", msg) 397 #define APP_TRACE_ERR1(msg, var1) WSF_TRACE1("APP", "ERR", msg, var1) 399 #define APP_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("APP", "ERR", msg, var1, var2) 401 #define APP_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("APP", "ERR", msg, var1, var2, var3) 404 #define LL_TRACE_INFO0(msg) WSF_TRACE0("LL", "INFO", msg) 406 #define LL_TRACE_INFO1(msg, var1) WSF_TRACE1("LL", "INFO", msg, var1) 408 #define LL_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("LL", "INFO", msg, var1, var2) 410 #define LL_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("LL", "INFO", msg, var1, var2, var3) 412 #define LL_TRACE_WARN0(msg) WSF_TRACE0("LL", "WARN", msg) 414 #define LL_TRACE_WARN1(msg, var1) WSF_TRACE1("LL", "WARN", msg, var1) 416 #define LL_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("LL", "WARN", msg, var1, var2) 418 #define LL_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("LL", "WARN", msg, var1, var2, var3) 420 #define LL_TRACE_ERR0(msg) WSF_TRACE0("LL", "ERR", msg) 422 #define LL_TRACE_ERR1(msg, var1) WSF_TRACE1("LL", "ERR", msg, var1) 424 #define LL_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("LL", "ERR", msg, var1, var2) 426 #define LL_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("LL", "ERR", msg, var1, var2, var3) 429 #define BBP_TRACE_INFO0(msg) WSF_TRACE0("BBP", "INFO", msg) 431 #define BBP_TRACE_INFO1(msg, var1) WSF_TRACE1("BBP", "INFO", msg, var1) 433 #define BBP_TRACE_INFO2(msg, var1, var2) WSF_TRACE2("BBP", "INFO", msg, var1, var2) 435 #define BBP_TRACE_INFO3(msg, var1, var2, var3) WSF_TRACE3("BBP", "INFO", msg, var1, var2, var3) 437 #define BBP_TRACE_WARN0(msg) WSF_TRACE0("BBP", "WARN", msg) 439 #define BBP_TRACE_WARN1(msg, var1) WSF_TRACE1("BBP", "WARN", msg, var1) 441 #define BBP_TRACE_WARN2(msg, var1, var2) WSF_TRACE2("BBP", "WARN", msg, var1, var2) 443 #define BBP_TRACE_WARN3(msg, var1, var2, var3) WSF_TRACE3("BBP", "WARN", msg, var1, var2, var3) 445 #define BBP_TRACE_ERR0(msg) WSF_TRACE0("BBP", "ERR", msg) 447 #define BBP_TRACE_ERR1(msg, var1) WSF_TRACE1("BBP", "ERR", msg, var1) 449 #define BBP_TRACE_ERR2(msg, var1, var2) WSF_TRACE2("BBP", "ERR", msg, var1, var2) 451 #define BBP_TRACE_ERR3(msg, var1, var2, var3) WSF_TRACE3("BBP", "ERR", msg, var1, var2, var3) 453 #if (WSF_TRACE_ENABLED == TRUE) || (WSF_TOKEN_ENABLED == TRUE) 455 #define LL_TRACE_ENABLE(ena) WsfTraceEnable(ena) 457 #define LL_TRACE_ENABLE(ena) uint8_t bool_t
Boolean data type.
void WsfTraceEnable(bool_t enable)
Enable trace messages.
void WsfTraceRegister(wsfTraceCback_t cback)
Register platform trace callback function.
void(* wsfTraceCback_t)(const char *pStr, va_list args)
Platform trace callback.
void(* WsfTokenHandler_t)(uint8_t *pBuf, uint8_t len)
Token event handler.
void WsfTokenRegisterHandler(WsfTokenHandler_t tokenCback)
Regsiter token handler.
unsigned long uint32_t
Unsigned 32-bit value.
void WsfToken(uint32_t tok, uint32_t var)
Output tokenized message.
void WsfTrace(const char *pStr,...)
Print a trace message.
bool_t WsfTokenService(void)
Service the trace ring buffer.
unsigned char uint8_t
Unsigned 8-bit value.