Re: [PATCH v2 11/13] perf header: change FEAT_OP* macros

From: Jiri Olsa
Date: Thu May 25 2017 - 04:09:50 EST


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 <davidcc@xxxxxxxxxx>
> ---
> 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