diff options
Diffstat (limited to 'tools/perf/util/expr.h')
-rw-r--r-- | tools/perf/util/expr.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/perf/util/expr.h b/tools/perf/util/expr.h index de109c2ab917..4ed186bd1f13 100644 --- a/tools/perf/util/expr.h +++ b/tools/perf/util/expr.h @@ -30,9 +30,19 @@ struct expr_scanner_ctx { int runtime; }; +struct hashmap *ids__new(void); +void ids__free(struct hashmap *ids); +int ids__insert(struct hashmap *ids, const char *id, struct expr_id *parent); +/* + * Union two sets of ids (hashmaps) and construct a third, freeing ids1 and + * ids2. + */ +struct hashmap *ids__union(struct hashmap *ids1, struct hashmap *ids2); + struct expr_parse_ctx *expr__ctx_new(void); void expr__ctx_clear(struct expr_parse_ctx *ctx); void expr__ctx_free(struct expr_parse_ctx *ctx); + void expr__del_id(struct expr_parse_ctx *ctx, const char *id); int expr__add_id(struct expr_parse_ctx *ctx, const char *id); int expr__add_id_val(struct expr_parse_ctx *ctx, const char *id, double val); @@ -41,8 +51,10 @@ int expr__get_id(struct expr_parse_ctx *ctx, const char *id, struct expr_id_data **data); int expr__resolve_id(struct expr_parse_ctx *ctx, const char *id, struct expr_id_data **datap); + int expr__parse(double *final_val, struct expr_parse_ctx *ctx, const char *expr, int runtime); + int expr__find_ids(const char *expr, const char *one, struct expr_parse_ctx *ids, int runtime); |