Lines Matching refs:group
58 const struct fd_perfcntr_group *group; member
394 select_counter(struct counter_group *group, int ctr, int n) in select_counter() argument
396 assert(n < group->group->num_countables); in select_counter()
397 assert(ctr < group->group->num_counters); in select_counter()
399 group->label[ctr] = group->group->countables[n].name; in select_counter()
400 group->counter[ctr].select_val = n; in select_counter()
423 if (group->group->counters[ctr].enable) { in select_counter()
424 OUT_PKT0(ring, group->group->counters[ctr].enable, 1); in select_counter()
428 if (group->group->counters[ctr].clear) { in select_counter()
429 OUT_PKT0(ring, group->group->counters[ctr].clear, 1); in select_counter()
432 OUT_PKT0(ring, group->group->counters[ctr].clear, 1); in select_counter()
436 OUT_PKT0(ring, group->group->counters[ctr].select_reg, 1); in select_counter()
439 if (group->group->counters[ctr].enable) { in select_counter()
440 OUT_PKT0(ring, group->group->counters[ctr].enable, 1); in select_counter()
449 if (group->group->counters[ctr].enable) { in select_counter()
450 OUT_PKT4(ring, group->group->counters[ctr].enable, 1); in select_counter()
454 if (group->group->counters[ctr].clear) { in select_counter()
455 OUT_PKT4(ring, group->group->counters[ctr].clear, 1); in select_counter()
458 OUT_PKT4(ring, group->group->counters[ctr].clear, 1); in select_counter()
462 OUT_PKT4(ring, group->group->counters[ctr].select_reg, 1); in select_counter()
465 if (group->group->counters[ctr].enable) { in select_counter()
466 OUT_PKT4(ring, group->group->counters[ctr].enable, 1); in select_counter()
473 group->last[ctr] = *group->counter[ctr].val_lo; in select_counter()
474 group->stime[ctr] = gettime_us(); in select_counter()
478 resample_counter(struct counter_group *group, int ctr) in resample_counter() argument
480 uint32_t val = *group->counter[ctr].val_lo; in resample_counter()
482 uint32_t dt = delta(group->stime[ctr], t); in resample_counter()
483 uint32_t dval = delta(group->last[ctr], val); in resample_counter()
484 group->current[ctr] = (float)dval * 1000000.0 / (float)dt; in resample_counter()
485 group->last[ctr] = val; in resample_counter()
486 group->stime[ctr] = t; in resample_counter()
504 struct counter_group *group = &dev.groups[i]; in resample() local
505 for (unsigned j = 0; j < group->group->num_counters; j++) { in resample()
506 resample_counter(group, j); in resample()
617 redraw_counter(WINDOW *win, int row, struct counter_group *group, in redraw_counter() argument
620 redraw_counter_label(win, row, group->label[ctr], selected); in redraw_counter()
635 if (strstr(group->label[ctr], "CYCLE") || in redraw_counter()
636 strstr(group->label[ctr], "BUSY") || in redraw_counter()
637 strstr(group->label[ctr], "IDLE")) in redraw_counter()
638 redraw_counter_value_cycles(win, group->current[ctr]); in redraw_counter()
640 redraw_counter_value_raw(win, group->current[ctr]); in redraw_counter()
661 struct counter_group *group = &dev.groups[i]; in redraw() local
668 if (j < group->group->num_counters) { in redraw()
670 redraw_group_header(win, row - scroll, group->group->name); in redraw()
674 for (; j < group->group->num_counters; j++) { in redraw()
676 redraw_counter(win, row - scroll, group, j, row == current_cntr); in redraw()
703 struct counter_group *group = &dev.groups[i]; in current_counter() local
711 if (j < group->group->num_counters) { in current_counter()
721 for (; j < group->group->num_counters; j++) { in current_counter()
725 return group; in current_counter()
739 struct counter_group *group; in counter_dialog() local
746 group = current_counter(&cnt); in counter_dialog()
751 uint32_t selected = group->counter[cnt].select_val; in counter_dialog()
752 for (int i = 0; i < group->group->num_countables; i++) { in counter_dialog()
753 if (group->group->countables[i].selector == selected) { in counter_dialog()
768 int max = MIN2(dh - 2, group->group->num_countables); in counter_dialog()
781 assert (n < group->group->num_countables); in counter_dialog()
782 selector = group->group->countables[n].selector; in counter_dialog()
785 if (n < group->group->num_countables) in counter_dialog()
786 waddstr(dialog, group->group->countables[n].name); in counter_dialog()
799 current = MIN2(group->group->num_countables - 1, current + 1); in counter_dialog()
804 select_counter(group, cnt, selector); in counter_dialog()
910 struct counter_group *group = &dev.groups[i]; in restore_counter_groups() local
917 for (; j < group->group->num_counters; j++) { in restore_counter_groups()
918 select_counter(group, j, group->counter[j].select_val); in restore_counter_groups()
927 struct counter_group *group = &dev.groups[i]; in setup_counter_groups() local
929 group->group = &groups[i]; in setup_counter_groups()
931 max_rows += group->group->num_counters + 1; in setup_counter_groups()
936 if (group->group->num_counters <= 1) in setup_counter_groups()
940 for (unsigned j = 0; j < group->group->num_counters; j++) { in setup_counter_groups()
941 group->counter[j].counter = &group->group->counters[j]; in setup_counter_groups()
943 group->counter[j].val_hi = dev.io + (group->counter[j].counter->counter_reg_hi * 4); in setup_counter_groups()
944 group->counter[j].val_lo = dev.io + (group->counter[j].counter->counter_reg_lo * 4); in setup_counter_groups()
946 group->counter[j].select_val = j; in setup_counter_groups()
949 for (unsigned j = 0; j < group->group->num_countables; j++) { in setup_counter_groups()
950 ctr_width = MAX2(ctr_width, strlen(group->group->countables[j].name) + 1); in setup_counter_groups()
966 struct counter_group *group = &dev.groups[i]; in config_save() local
974 config_setting_get_member(setting, group->group->name); in config_save()
976 for (; j < group->group->num_counters; j++) { in config_save()
981 config_setting_set_int(s, group->counter[j].select_val); in config_save()
1010 struct counter_group *group = &dev.groups[i]; in config_restore() local
1018 config_setting_get_member(setting, group->group->name); in config_restore()
1021 sect = config_setting_add(setting, group->group->name, in config_restore()
1025 for (; j < group->group->num_counters; j++) { in config_restore()
1033 select_counter(group, j, config_setting_get_int(s)); in config_restore()