perf tools: Split term type into value type and term type
Introducing type_val and type_term for term instead of a single type value. Currently the term type marked out the value type as well. With this change we can have future string term values being specified by user and translated into proper number along the processing. Signed-off-by: Jiri Olsa <jolsa@redhat.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Robert Richter <robert.richter@amd.com> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1335371102-11358-2-git-send-email-jolsa@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
a0187060f4
commit
16fa7e8200
4 changed files with 96 additions and 56 deletions
|
@ -225,7 +225,7 @@ static int pmu_config_term(struct list_head *formats,
|
|||
if (parse_events__is_hardcoded_term(term))
|
||||
return 0;
|
||||
|
||||
if (term->type != PARSE_EVENTS__TERM_TYPE_NUM)
|
||||
if (term->type_val != PARSE_EVENTS__TERM_TYPE_NUM)
|
||||
return -EINVAL;
|
||||
|
||||
format = pmu_find_format(formats, term->config);
|
||||
|
@ -246,6 +246,11 @@ static int pmu_config_term(struct list_head *formats,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX If we ever decide to go with string values for
|
||||
* non-hardcoded terms, here's the place to translate
|
||||
* them into value.
|
||||
*/
|
||||
*vp |= pmu_format_value(format->bits, term->val.num);
|
||||
return 0;
|
||||
}
|
||||
|
@ -324,49 +329,58 @@ static struct test_format {
|
|||
/* Simulated users input. */
|
||||
static struct parse_events__term test_terms[] = {
|
||||
{
|
||||
.config = (char *) "krava01",
|
||||
.val.num = 15,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava01",
|
||||
.val.num = 15,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava02",
|
||||
.val.num = 170,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava02",
|
||||
.val.num = 170,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava03",
|
||||
.val.num = 1,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava03",
|
||||
.val.num = 1,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava11",
|
||||
.val.num = 27,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava11",
|
||||
.val.num = 27,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava12",
|
||||
.val.num = 1,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava12",
|
||||
.val.num = 1,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava13",
|
||||
.val.num = 2,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava13",
|
||||
.val.num = 2,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava21",
|
||||
.val.num = 119,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava21",
|
||||
.val.num = 119,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava22",
|
||||
.val.num = 11,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava22",
|
||||
.val.num = 11,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
{
|
||||
.config = (char *) "krava23",
|
||||
.val.num = 2,
|
||||
.type = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.config = (char *) "krava23",
|
||||
.val.num = 2,
|
||||
.type_val = PARSE_EVENTS__TERM_TYPE_NUM,
|
||||
.type_term = PARSE_EVENTS__TERM_TYPE_USER,
|
||||
},
|
||||
};
|
||||
#define TERMS_CNT (sizeof(test_terms) / sizeof(struct parse_events__term))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue