tools lib traceevent: Add direct access to dynamic arrays
authorSteven Rostedt <rostedt@goodmis.org>
Mon, 11 Nov 2013 21:08:10 +0000 (16:08 -0500)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 12 Nov 2013 20:23:44 +0000 (17:23 -0300)
commit0497a9ebaf7ae4d573497b3e053ad4c3d5c9921d
tree093292321d5a066d8aa7e6528e9fcf0081c4f4a7
parent602ad878d41ef097cc9aa2def7830d5bb27a15d8
tools lib traceevent: Add direct access to dynamic arrays

Jiri Olsa was writing a plugin for the cfg80211_tx_mlme_mgmt trace
event, and was not able to get the implemented function working.
The event's print fmt looks like:

   "netdev:%s(%d), ftype:0x%.2x", REC->name, REC->ifindex,
            __le16_to_cpup((__le16 *)__get_dynamic_array(frame))

As there's no helper function for __le16_to_cpup(), Jiri was creating one
with a plugin. But unfortunately, it would not work even though he set
up the plugin correctly.

The problem is that the function parameters do not handle the helper
function "__get_dynamic_array()", and that passes in a NULL pointer.

Adding PRINT_DYNAMIC_ARRAY direct support to eval_num_arg() allows the
use of __get_dynamic_array() in function parameters.

Reported-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Tested-by: Jiri Olsa <jolsa@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20131111160810.0ba9df7d@gandalf.local.home
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/lib/traceevent/event-parse.c