tracing: Add __field_struct macro for TRACE_EVENT()
authorSteven Rostedt <rostedt@goodmis.org>
Tue, 17 Jun 2014 12:59:16 +0000 (08:59 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Sat, 21 Jun 2014 04:18:42 +0000 (00:18 -0400)
commit4d4c9cc839a308be3289a361ccba4447ee140552
tree404a0a22a3700c16ef3437b69fefe46c06cf5f91
parentea73c79e33c45e1fa0071e216f06fd5682314490
tracing: Add __field_struct macro for TRACE_EVENT()

Currently the __field() macro in TRACE_EVENT is only good for primitive
values, such as integers and pointers, but it fails on complex data types
such as structures or unions. This is because the __field() macro
determines if the variable is signed or not with the test of:

  (((type)(-1)) < (type)1)

Unfortunately, that fails when type is a structure.

Since trace events should support structures as fields a new macro
is created for such a case called __field_struct() which acts exactly
the same as __field() does but it does not do the signed type check
and just uses a constant false for that answer.

Cc: Tony Luck <tony.luck@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/trace/ftrace.h
samples/trace_events/trace-events-sample.h