On Sun, Mar 17, 2019 at 12:34:25AM +0800, Jin Yao wrote:

SNIP

>  static bool config_term_shrinked;
> @@ -950,6 +951,7 @@ config_term_avail(int term_type, struct 
> parse_events_error *err)
>       case PARSE_EVENTS__TERM_TYPE_CONFIG2:
>       case PARSE_EVENTS__TERM_TYPE_NAME:
>       case PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD:
> +     case PARSE_EVENTS__TERM_TYPE_PERCORE:
>               return true;
>       default:
>               if (!err)
> @@ -1041,6 +1043,14 @@ do {                                                   
>                    \
>       case PARSE_EVENTS__TERM_TYPE_MAX_EVENTS:
>               CHECK_TYPE_VAL(NUM);
>               break;
> +     case PARSE_EVENTS__TERM_TYPE_PERCORE:
> +             CHECK_TYPE_VAL(NUM);
> +             if ((unsigned int)term->val.num > 1) {
> +                     err->str = strdup("expected 0 or 1");
> +                     err->idx = term->err_val;
> +                     return -EINVAL;
> +             }
> +             break;
>       default:
>               err->str = strdup("unknown term");
>               err->idx = term->err_term;
> @@ -1179,6 +1189,10 @@ do {                                                   
>         \
>               case PARSE_EVENTS__TERM_TYPE_DRV_CFG:
>                       ADD_CONFIG_TERM(DRV_CFG, drv_cfg, term->val.str);
>                       break;
> +             case PARSE_EVENTS__TERM_TYPE_PERCORE:
> +                     ADD_CONFIG_TERM(PERCORE, percore,
> +                                     term->val.num ? 1 : 0);

                                        term->val.num ? true : false

> +                     break;
>               default:
>                       break;
>               }
> @@ -1233,6 +1247,18 @@ int parse_events_add_numeric(struct parse_events_state 
> *parse_state,
>                        get_config_name(head_config), &config_terms);
>  }
>  
> +static bool config_term_percore(struct list_head *config_terms)
> +{
> +     struct perf_evsel_config_term *term;
> +
> +     list_for_each_entry(term, config_terms, list) {
> +             if (term->type == PERF_EVSEL__CONFIG_TERM_PERCORE)
> +                     return term->val.percore ? true : false;

term->val.percore is bool right? so just simple
        return term->val.percore;
        
should be enough.. together with above change

jirka

Reply via email to