Merge tag 'trace-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux...
[linux-2.6-microblaze.git] / include / linux / trace_events.h
index e6e95a9..b18759a 100644 (file)
@@ -916,6 +916,24 @@ perf_trace_buf_submit(void *raw_data, int size, int rctx, u16 type,
 
 #endif
 
+#define TRACE_EVENT_STR_MAX    512
+
+/*
+ * gcc warns that you can not use a va_list in an inlined
+ * function. But lets me make it into a macro :-/
+ */
+#define __trace_event_vstr_len(fmt, va)                        \
+({                                                     \
+       va_list __ap;                                   \
+       int __ret;                                      \
+                                                       \
+       va_copy(__ap, *(va));                           \
+       __ret = vsnprintf(NULL, 0, fmt, __ap) + 1;      \
+       va_end(__ap);                                   \
+                                                       \
+       min(__ret, TRACE_EVENT_STR_MAX);                \
+})
+
 #endif /* _LINUX_TRACE_EVENT_H */
 
 /*