dev: strip debig log function name prefix during compilation
Type: improvement
Change-Id: I9b9bb37a0895366b412f042b0e2da5bbdd477325
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/src/plugins/dev_iavf/format.c b/src/plugins/dev_iavf/format.c
index bc84cc3..9a3dde4 100644
--- a/src/plugins/dev_iavf/format.c
+++ b/src/plugins/dev_iavf/format.c
@@ -110,24 +110,3 @@
s = format (s, "disabled");
return s;
}
-
-u8 *
-format_iavf_log (u8 *s, va_list *args)
-{
- vnet_dev_t *dev = va_arg (*args, vnet_dev_t *);
- char *func = va_arg (*args, char *);
-
- if (dev)
- s = format (s, "%U", format_vnet_dev_addr, dev);
- if (dev && func)
- vec_add1 (s, ' ');
- if (func)
- {
- if (strncmp (func, "iavf_", 5) == 0)
- func += 5;
- s = format (s, "%s", func);
- }
- vec_add1 (s, ':');
- vec_add1 (s, ' ');
- return s;
-}
diff --git a/src/plugins/dev_iavf/iavf.h b/src/plugins/dev_iavf/iavf.h
index 7576fa9..958a8dc 100644
--- a/src/plugins/dev_iavf/iavf.h
+++ b/src/plugins/dev_iavf/iavf.h
@@ -105,7 +105,6 @@
format_function_t format_iavf_vf_cap_flags;
format_function_t format_iavf_rx_trace;
format_function_t format_iavf_port_status;
-format_function_t format_iavf_log;
/* port.c */
vnet_dev_rv_t iavf_port_init (vlib_main_t *, vnet_dev_port_t *);
@@ -157,8 +156,9 @@
}
#define log_debug(dev, f, ...) \
- vlib_log (VLIB_LOG_LEVEL_DEBUG, iavf_log.class, "%U" f, format_iavf_log, \
- (dev), __func__, ##__VA_ARGS__)
+ vlib_log (VLIB_LOG_LEVEL_DEBUG, iavf_log.class, "%U" f, \
+ format_vnet_dev_log, (dev), \
+ clib_string_skip_prefix (__func__, "iavf_"), ##__VA_ARGS__)
#define log_info(dev, f, ...) \
vlib_log (VLIB_LOG_LEVEL_INFO, iavf_log.class, "%U: " f, \
format_vnet_dev_addr, (dev), ##__VA_ARGS__)
diff --git a/src/vnet/dev/dev.h b/src/vnet/dev/dev.h
index 5c80b98..9b54e73 100644
--- a/src/vnet/dev/dev.h
+++ b/src/vnet/dev/dev.h
@@ -613,6 +613,7 @@
format_function_t format_vnet_dev_tx_queue_info;
format_function_t format_vnet_dev_flags;
format_function_t format_vnet_dev_port_flags;
+format_function_t format_vnet_dev_log;
unformat_function_t unformat_vnet_dev_flags;
unformat_function_t unformat_vnet_dev_port_flags;
diff --git a/src/vnet/dev/format.c b/src/vnet/dev/format.c
index 4e1ece6..b8b7dbd 100644
--- a/src/vnet/dev/format.c
+++ b/src/vnet/dev/format.c
@@ -394,11 +394,7 @@
if (dev && func)
vec_add1 (s, ' ');
if (func)
- {
- if (strncmp (func, "vnet_dev_", 9) == 0)
- func += 9;
- s = format (s, "%s", func);
- }
+ s = format (s, "%s", func);
vec_add1 (s, ':');
vec_add1 (s, ' ');
return s;
diff --git a/src/vnet/dev/log.h b/src/vnet/dev/log.h
index 432e7b8..5ca7b66 100644
--- a/src/vnet/dev/log.h
+++ b/src/vnet/dev/log.h
@@ -5,11 +5,10 @@
#ifndef _VNET_DEV_LOG_H_
#define _VNET_DEV_LOG_H_
-format_function_t format_vnet_dev_log;
-
#define log_debug(dev, f, ...) \
vlib_log (VLIB_LOG_LEVEL_DEBUG, dev_log.class, "%U" f, format_vnet_dev_log, \
- dev, __func__, ##__VA_ARGS__)
+ dev, clib_string_skip_prefix (__func__, "vnet_dev_"), \
+ ##__VA_ARGS__)
#define log_notice(dev, f, ...) \
vlib_log (VLIB_LOG_LEVEL_NOTICE, dev_log.class, "%U" f, \
format_vnet_dev_log, dev, 0, ##__VA_ARGS__)
diff --git a/src/vppinfra/string.h b/src/vppinfra/string.h
index 38d3bab..b1ef0e4 100644
--- a/src/vppinfra/string.h
+++ b/src/vppinfra/string.h
@@ -1161,6 +1161,13 @@
return EOK;
}
+static_always_inline const char *
+clib_string_skip_prefix (const char *s, const char *prefix)
+{
+ uword len = __builtin_strlen (prefix);
+ return s + (__builtin_strncmp (s, prefix, len) ? 0 : len);
+}
+
#endif /* included_clib_string_h */
/*