/*-
* BSD LICENSE
*
- * Copyright(c) 2010-2012 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#define RTE_LOGTYPE_LPM 0x00000080 /**< Log related to LPM. */
#define RTE_LOGTYPE_KNI 0X00000100 /**< Log related to KNI. */
#define RTE_LOGTYPE_PMAC 0x00000200 /**< Log related to PMAC. */
+#define RTE_LOGTYPE_POWER 0x00000400 /**< Log related to power. */
+#define RTE_LOGTYPE_METER 0x00000800 /**< Log related to QoS meter. */
+#define RTE_LOGTYPE_SCHED 0x00001000 /**< Log related to QoS port scheduler. */
/* these log types can be used in an application */
#define RTE_LOGTYPE_USER1 0x01000000 /**< User-defined log type 1. */
* - Negative on error.
*/
int rte_log(uint32_t level, uint32_t logtype, const char *format, ...)
+ __attribute__((cold))
__attribute__((format(printf, 3, 4)));
/**
* - 0: Success.
* - Negative on error.
*/
-#define RTE_LOG(l, t, fmt, args...) ({ \
- if ((RTE_LOG_##l <= RTE_LOG_LEVEL) && \
- (RTE_LOG_##l <= rte_logs.level) && \
- (RTE_LOGTYPE_##t & rte_logs.type)) { \
- rte_log(RTE_LOG_##l, RTE_LOGTYPE_##t, \
- #t ": " fmt, ## args); \
- } \
-})
+#define RTE_LOG(l, t, ...) \
+ (void)(((RTE_LOG_ ## l <= RTE_LOG_LEVEL) && \
+ (RTE_LOG_ ## l <= rte_logs.level) && \
+ (RTE_LOGTYPE_ ## t & rte_logs.type)) ? \
+ rte_log(RTE_LOG_ ## l, \
+ RTE_LOGTYPE_ ## t, # t ": " __VA_ARGS__) : \
+ 0)
#ifdef __cplusplus
}