On Tue, May 23, 2017 at 12:48:51AM -0700, David Carrillo-Cisneros wrote: > There are three FEAT_OP* macros: > - FEAT_OPA: for features without process record. > - FEAT_OPP: for features with process record. > - FEAT_OPF: like FEAT_OPP but to show only if show_full_info flags > is set. > > To add pipe-mode headers we need to specify whether a feature generates a > corresponding sample record. This is an extra variation to the existing
nit, the sample word here is confusing, it's an aux event > macros. To simplify, redefine macros instead so that: > - show_full_info is specified as an argument (to remove the > FEAT_OPF variation) and, > - it always sets "process" handler (to remove the FEAT_OPA variation). > Individual process handlers can be NULLed individually. > > This allows to define two variations only: > - FEAT_OPR: has sample record. > - FEAT_OPN: doesn't has sample record. > > Signed-off-by: David Carrillo-Cisneros <[email protected]> > --- > tools/perf/util/header.c | 72 > +++++++++++++++++++++++++++++------------------- > 1 file changed, 44 insertions(+), 28 deletions(-) > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c > index b7704b30ed52..7aa84a02b9bd 100644 > --- a/tools/perf/util/header.c > +++ b/tools/perf/util/header.c > @@ -11,6 +11,7 @@ > #include <linux/list.h> > #include <linux/kernel.h> > #include <linux/bitops.h> > +#include <linux/stringify.h> > #include <sys/stat.h> > #include <sys/types.h> > #include <sys/utsname.h> > @@ -2106,42 +2107,57 @@ struct feature_ops { > int (*process)(struct feat_fd *fd, void *data); > const char *name; > bool full_only; > + bool has_record; 'synthesize' might be better choice jirka

