aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/ftrace_event.h8
-rw-r--r--include/trace/ftrace.h12
2 files changed, 8 insertions, 12 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index a91ab93d7250..ffe642eb84fa 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -202,6 +202,10 @@ extern int ftrace_event_reg(struct ftrace_event_call *event,
202int ftrace_output_event(struct trace_iterator *iter, struct ftrace_event_call *event, 202int ftrace_output_event(struct trace_iterator *iter, struct ftrace_event_call *event,
203 char *fmt, ...); 203 char *fmt, ...);
204 204
205int ftrace_event_define_field(struct ftrace_event_call *call,
206 char *type, int len, char *item, int offset,
207 int field_size, int sign, int filter);
208
205enum { 209enum {
206 TRACE_EVENT_FL_FILTERED_BIT, 210 TRACE_EVENT_FL_FILTERED_BIT,
207 TRACE_EVENT_FL_CAP_ANY_BIT, 211 TRACE_EVENT_FL_CAP_ANY_BIT,
@@ -500,10 +504,6 @@ enum {
500 FILTER_TRACE_FN, 504 FILTER_TRACE_FN,
501}; 505};
502 506
503#define EVENT_STORAGE_SIZE 128
504extern struct mutex event_storage_mutex;
505extern char event_storage[EVENT_STORAGE_SIZE];
506
507extern int trace_event_raw_init(struct ftrace_event_call *call); 507extern int trace_event_raw_init(struct ftrace_event_call *call);
508extern int trace_define_field(struct ftrace_event_call *call, const char *type, 508extern int trace_define_field(struct ftrace_event_call *call, const char *type,
509 const char *name, int offset, int size, 509 const char *name, int offset, int size,
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index 3873d6e4697f..54928faf2119 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -302,15 +302,11 @@ static struct trace_event_functions ftrace_event_type_funcs_##call = { \
302#undef __array 302#undef __array
303#define __array(type, item, len) \ 303#define __array(type, item, len) \
304 do { \ 304 do { \
305 mutex_lock(&event_storage_mutex); \
306 BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ 305 BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \
307 snprintf(event_storage, sizeof(event_storage), \ 306 ret = ftrace_event_define_field(event_call, #type, len, \
308 "%s[%d]", #type, len); \ 307 #item, offsetof(typeof(field), item), \
309 ret = trace_define_field(event_call, event_storage, #item, \ 308 sizeof(field.item), \
310 offsetof(typeof(field), item), \ 309 is_signed_type(type), FILTER_OTHER); \
311 sizeof(field.item), \
312 is_signed_type(type), FILTER_OTHER); \
313 mutex_unlock(&event_storage_mutex); \
314 if (ret) \ 310 if (ret) \
315 return ret; \ 311 return ret; \
316 } while (0); 312 } while (0);