tracing: Add a method to pass in trace_array descriptor to option files
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 30 Sep 2015 15:11:15 +0000 (11:11 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 30 Sep 2015 19:22:56 +0000 (15:22 -0400)
commit9a38a8856f41f90cc7e57798c544e3fe77033196
tree346a947988b62983e0619223b96f84bc5b238152
parent983f938ae69585213bbb779d841b90e75f93f545
tracing: Add a method to pass in trace_array descriptor to option files

In preparation of having the multi buffer instances having their own trace
option flags, the trace option files needs a way to not only pass in the
flag they represent, but also the trace_array descriptor.

A new field is added to the trace_array descriptor called trace_flags_index,
which is a 32 byte character array representing a bit. This array is simply
filled with the index of the array, where

  index_array[n] = n;

Then the address of this array is passed to the file callbacks instead of
the index of the flag index. Then to retrieve both the flag index and the
trace_array descriptor:

  data is the passed in argument.

  index = *(unsigned char *)data;

  data -= index;

  /* Now data points to the address of the array in the trace_array */

  tr = container_of(data, struct trace_array, trace_flags_index);

Suggested-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.c
kernel/trace/trace.h