|
@@ -1142,6 +1142,24 @@ int parse_events__term_str(struct parse_events__term **term,
|
|
|
config, str, 0);
|
|
|
}
|
|
|
|
|
|
+int parse_events__term_sym_hw(struct parse_events__term **term,
|
|
|
+ char *config, unsigned idx)
|
|
|
+{
|
|
|
+ struct event_symbol *sym;
|
|
|
+
|
|
|
+ BUG_ON(idx >= PERF_COUNT_HW_MAX);
|
|
|
+ sym = &event_symbols_hw[idx];
|
|
|
+
|
|
|
+ if (config)
|
|
|
+ return new_term(term, PARSE_EVENTS__TERM_TYPE_STR,
|
|
|
+ PARSE_EVENTS__TERM_TYPE_USER, config,
|
|
|
+ (char *) sym->symbol, 0);
|
|
|
+ else
|
|
|
+ return new_term(term, PARSE_EVENTS__TERM_TYPE_STR,
|
|
|
+ PARSE_EVENTS__TERM_TYPE_USER,
|
|
|
+ (char *) "event", (char *) sym->symbol, 0);
|
|
|
+}
|
|
|
+
|
|
|
int parse_events__term_clone(struct parse_events__term **new,
|
|
|
struct parse_events__term *term)
|
|
|
{
|