tracing: Combine enum and arrays into single macro in filter code
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Thu, 8 Mar 2018 20:32:50 +0000 (15:32 -0500)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 14 Mar 2018 16:32:18 +0000 (12:32 -0400)
commite9baef0d86162add1205eb07bae08e9efc2f1ae0
tree1b8143cd9d71bfa1bafdc3dec68207db66fda7af
parent567f6989fd2ac1078d6908fe1bb45932bbeb1b00
tracing: Combine enum and arrays into single macro in filter code

Instead of having a separate enum that is the index into another array, like
a string array, make a single macro that combines them into a single list,
and then the two can not get out of sync. This makes it easier to add and
remove items.

The macro trick is:

 #define DOGS \
  C( JACK,     "Jack Russell") \
  C( ITALIAN,  "Italian Greyhound") \
  C( GERMAN,   "German Shepherd")

 #undef C
 #define C(a, b) a

 enum { DOGS };

 #undef C
 #define C(a, b) b

 static char dogs[] = { DOGS };

Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/trace_events_filter.c