100 lines
2.8 KiB
C
100 lines
2.8 KiB
C
/** @file
|
|
* @brief Bluetooth subsystem logging helpers.
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 2015 Intel Corporation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
#ifndef __BT_LOG_H
|
|
#define __BT_LOG_H
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if defined(CONFIG_BLUETOOTH_DEBUG_MONITOR)
|
|
|
|
/* These defines follow the values used by syslog(2) */
|
|
#define BT_LOG_ERR 3
|
|
#define BT_LOG_WARN 4
|
|
#define BT_LOG_INFO 6
|
|
#define BT_LOG_DBG 7
|
|
|
|
void bt_log(int prio, const char *fmt, ...);
|
|
|
|
#define BT_DBG(fmt, ...) bt_log(BT_LOG_DBG, "%s (%p): " fmt, \
|
|
__func__, sys_thread_self_get(), ##__VA_ARGS__)
|
|
#define BT_ERR(fmt, ...) bt_log(BT_LOG_ERR, "%s: " fmt, \
|
|
__func__, ##__VA_ARGS__)
|
|
#define BT_WARN(fmt, ...) bt_log(BT_LOG_WARN, "%s: " fmt, \
|
|
__func__, ##__VA_ARGS__)
|
|
#define BT_INFO(fmt, ...) bt_log(BT_LOG_INFO, fmt, ##__VA_ARGS__)
|
|
#define BT_ASSERT(cond) if (!(cond)) { \
|
|
BT_ERR("assert: '" #cond "' failed"); \
|
|
}
|
|
/* Enabling debug increases stack size requirement considerably */
|
|
#define BT_STACK_DEBUG_EXTRA 512
|
|
|
|
#elif defined(CONFIG_BLUETOOTH_DEBUG_STDOUT)
|
|
|
|
#include <nanokernel.h>
|
|
|
|
#if defined(CONFIG_BLUETOOTH_DEBUG_COLOR)
|
|
#define BT_COLOR_OFF "\x1B[0m"
|
|
#define BT_COLOR_RED "\x1B[0;31m"
|
|
#define BT_COLOR_YELLOW "\x1B[0;33m"
|
|
#else
|
|
#define BT_COLOR_OFF ""
|
|
#define BT_COLOR_RED ""
|
|
#define BT_COLOR_YELLOW ""
|
|
#endif
|
|
|
|
#define BT_DBG(fmt, ...) printf("bt: %s (%p): " fmt "\n", __func__, \
|
|
sys_thread_self_get(), ##__VA_ARGS__)
|
|
#define BT_ERR(fmt, ...) printf("bt: %s: %s" fmt "%s\n", __func__, \
|
|
BT_COLOR_RED, ##__VA_ARGS__, BT_COLOR_OFF)
|
|
#define BT_WARN(fmt, ...) printf("bt: %s: %s" fmt "%s\n", __func__, \
|
|
BT_COLOR_YELLOW, ##__VA_ARGS__, BT_COLOR_OFF)
|
|
#define BT_INFO(fmt, ...) printf("bt: " fmt "\n", ##__VA_ARGS__)
|
|
#define BT_ASSERT(cond) if (!(cond)) { \
|
|
BT_ERR("assert: '" #cond "' failed"); \
|
|
}
|
|
/* Enabling debug increases stack size requirement considerably */
|
|
#define BT_STACK_DEBUG_EXTRA 512
|
|
|
|
#else
|
|
|
|
#define BT_DBG(fmt, ...)
|
|
#define BT_ERR(fmt, ...)
|
|
#define BT_WARN(fmt, ...)
|
|
#define BT_INFO(fmt, ...)
|
|
#define BT_ASSERT(cond)
|
|
#define BT_STACK_DEBUG_EXTRA 0
|
|
|
|
#endif
|
|
|
|
#define BT_STACK(name, size) \
|
|
char __stack name[(size) + BT_STACK_DEBUG_EXTRA]
|
|
#define BT_STACK_NOINIT(name, size) \
|
|
char __noinit __stack name[(size) + BT_STACK_DEBUG_EXTRA]
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __BT_LOG_H */
|