log: introduce logtype register macro
[dpdk.git] / lib / librte_eal / include / rte_log.h
index 1789ede..eaf66e4 100644 (file)
@@ -376,6 +376,30 @@ int rte_vlog(uint32_t level, uint32_t logtype, const char *format, va_list ap)
                 RTE_LOGTYPE_ ## t, # t ": " __VA_ARGS__) :     \
         0)
 
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Register a dynamic log type in constructor context with its name and level.
+ *
+ * It is a wrapper macro for declaring the logtype, register the log and
+ * sets it's level in the constructor context.
+ *
+ * @param type
+ *   The log type identifier
+ * @param name
+ *    Name for the log type to be registered
+ * @param level
+ *   Log level. A value between EMERG (1) and DEBUG (8).
+ */
+#define RTE_LOG_REGISTER(type, name, level)                            \
+int type;                                                              \
+RTE_INIT(__##type)                                                     \
+{                                                                      \
+       type = rte_log_register_type_and_pick_level(RTE_STR(name),      \
+                                                   RTE_LOG_##level);   \
+}
+
 #ifdef __cplusplus
 }
 #endif