diff options
Diffstat (limited to 'platform/linux-dpdk/include/api/odp_debug.h')
-rw-r--r-- | platform/linux-dpdk/include/api/odp_debug.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/platform/linux-dpdk/include/api/odp_debug.h b/platform/linux-dpdk/include/api/odp_debug.h new file mode 100644 index 000000000..bded9e1ed --- /dev/null +++ b/platform/linux-dpdk/include/api/odp_debug.h @@ -0,0 +1,88 @@ +/* Copyright (c) 2013, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ +/** + * @file + * + * ODP debug + */ + +#ifndef ODP_DEBUG_H_ +#define ODP_DEBUG_H_ + + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup odp_ver_abt_log_dbg + * Macros that allows different messages. + * @{ + */ + +#ifdef __GNUC__ + + +#if __GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 6)) + +/** + * _Static_assert was only added in GCC 4.6. Provide a weak replacement + * for previous versions. + */ +#define _Static_assert(e, s) extern int (*static_assert_checker (void)) \ + [sizeof (struct { unsigned int error_if_negative: (e) ? 1 : -1; })] + +#endif + + + +#endif + + +/** + * Compile time assertion-macro - fail compilation if cond is false. + * @note This macro has zero runtime overhead + */ +#define _ODP_STATIC_ASSERT(cond, msg) _Static_assert(1, msg) + +/** + * ODP log level. + */ +typedef enum odp_log_level { + ODP_LOG_DBG, + ODP_LOG_ERR, + ODP_LOG_UNIMPLEMENTED, + ODP_LOG_ABORT, + ODP_LOG_PRINT +} odp_log_level_e; + +/** + * ODP log function + * + * Instead of direct prints to stdout/stderr all logging in ODP implementation + * should be done via this function or its wrappers. + * ODP platform MUST provide a default *weak* implementation of this function. + * Application MAY override the function if needed by providing a strong + * function. + * + * @param[in] level Log level + * @param[in] fmt printf-style message format + * + * @return The number of characters logged if succeeded. Otherwise returns + * a negative number. + */ +extern int odp_override_log(odp_log_level_e level, const char *fmt, ...); + + + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif |