There are issues using lowercase min and max macros when compiling a C++ application with a third-party toolchain such as GNU ARM Embedded when using some STL headers i.e. <chrono>. This is because there are actual C++ functions called min and max defined in some of the STL headers and these macros interfere with them. By changing the macros to UPPERCASE, which is consistent with almost all other pre-processor macros this naming conflict is avoided. All files that use these macros have been updated. Signed-off-by: Carlos Stuart <carlosstuart1970@gmail.com>
58 lines
1.1 KiB
C
58 lines
1.1 KiB
C
/* log.c - logging helpers */
|
|
|
|
/*
|
|
* Copyright (c) 2017 Nordic Semiconductor ASA
|
|
* Copyright (c) 2016 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/* Helper for printk parameters to convert from binary to hex.
|
|
* We declare multiple buffers so the helper can be used multiple times
|
|
* in a single printk call.
|
|
*/
|
|
|
|
#include <stddef.h>
|
|
#include <zephyr/types.h>
|
|
#include <zephyr.h>
|
|
#include <misc/util.h>
|
|
#include <bluetooth/bluetooth.h>
|
|
#include <bluetooth/hci.h>
|
|
|
|
const char *bt_hex_real(const void *buf, size_t len)
|
|
{
|
|
static const char hex[] = "0123456789abcdef";
|
|
static char str[129];
|
|
const u8_t *b = buf;
|
|
int i;
|
|
|
|
len = MIN(len, (sizeof(str) - 1) / 2);
|
|
|
|
for (i = 0; i < len; i++) {
|
|
str[i * 2] = hex[b[i] >> 4];
|
|
str[i * 2 + 1] = hex[b[i] & 0xf];
|
|
}
|
|
|
|
str[i * 2] = '\0';
|
|
|
|
return str;
|
|
}
|
|
|
|
const char *bt_addr_str_real(const bt_addr_t *addr)
|
|
{
|
|
static char str[BT_ADDR_STR_LEN];
|
|
|
|
bt_addr_to_str(addr, str, sizeof(str));
|
|
|
|
return str;
|
|
}
|
|
|
|
const char *bt_addr_le_str_real(const bt_addr_le_t *addr)
|
|
{
|
|
static char str[BT_ADDR_LE_STR_LEN];
|
|
|
|
bt_addr_le_to_str(addr, str, sizeof(str));
|
|
|
|
return str;
|
|
}
|