Lines Matching refs:values
6 void perf_read_values_init(struct perf_read_values *values) in perf_read_values_init() argument
8 values->threads_max = 16; in perf_read_values_init()
9 values->pid = malloc(values->threads_max * sizeof(*values->pid)); in perf_read_values_init()
10 values->tid = malloc(values->threads_max * sizeof(*values->tid)); in perf_read_values_init()
11 values->value = malloc(values->threads_max * sizeof(*values->value)); in perf_read_values_init()
12 if (!values->pid || !values->tid || !values->value) in perf_read_values_init()
14 values->threads = 0; in perf_read_values_init()
16 values->counters_max = 16; in perf_read_values_init()
17 values->counterrawid = malloc(values->counters_max in perf_read_values_init()
18 * sizeof(*values->counterrawid)); in perf_read_values_init()
19 values->countername = malloc(values->counters_max in perf_read_values_init()
20 * sizeof(*values->countername)); in perf_read_values_init()
21 if (!values->counterrawid || !values->countername) in perf_read_values_init()
23 values->counters = 0; in perf_read_values_init()
26 void perf_read_values_destroy(struct perf_read_values *values) in perf_read_values_destroy() argument
30 if (!values->threads_max || !values->counters_max) in perf_read_values_destroy()
33 for (i = 0; i < values->threads; i++) in perf_read_values_destroy()
34 free(values->value[i]); in perf_read_values_destroy()
35 free(values->pid); in perf_read_values_destroy()
36 free(values->tid); in perf_read_values_destroy()
37 free(values->counterrawid); in perf_read_values_destroy()
38 for (i = 0; i < values->counters; i++) in perf_read_values_destroy()
39 free(values->countername[i]); in perf_read_values_destroy()
40 free(values->countername); in perf_read_values_destroy()
43 static void perf_read_values__enlarge_threads(struct perf_read_values *values) in perf_read_values__enlarge_threads() argument
45 values->threads_max *= 2; in perf_read_values__enlarge_threads()
46 values->pid = realloc(values->pid, in perf_read_values__enlarge_threads()
47 values->threads_max * sizeof(*values->pid)); in perf_read_values__enlarge_threads()
48 values->tid = realloc(values->tid, in perf_read_values__enlarge_threads()
49 values->threads_max * sizeof(*values->tid)); in perf_read_values__enlarge_threads()
50 values->value = realloc(values->value, in perf_read_values__enlarge_threads()
51 values->threads_max * sizeof(*values->value)); in perf_read_values__enlarge_threads()
52 if (!values->pid || !values->tid || !values->value) in perf_read_values__enlarge_threads()
56 static int perf_read_values__findnew_thread(struct perf_read_values *values, in perf_read_values__findnew_thread() argument
61 for (i = 0; i < values->threads; i++) in perf_read_values__findnew_thread()
62 if (values->pid[i] == pid && values->tid[i] == tid) in perf_read_values__findnew_thread()
65 if (values->threads == values->threads_max) in perf_read_values__findnew_thread()
66 perf_read_values__enlarge_threads(values); in perf_read_values__findnew_thread()
68 i = values->threads++; in perf_read_values__findnew_thread()
69 values->pid[i] = pid; in perf_read_values__findnew_thread()
70 values->tid[i] = tid; in perf_read_values__findnew_thread()
71 values->value[i] = malloc(values->counters_max * sizeof(**values->value)); in perf_read_values__findnew_thread()
72 if (!values->value[i]) in perf_read_values__findnew_thread()
78 static void perf_read_values__enlarge_counters(struct perf_read_values *values) in perf_read_values__enlarge_counters() argument
82 values->counters_max *= 2; in perf_read_values__enlarge_counters()
83 values->counterrawid = realloc(values->counterrawid, in perf_read_values__enlarge_counters()
84 values->counters_max * sizeof(*values->counterrawid)); in perf_read_values__enlarge_counters()
85 values->countername = realloc(values->countername, in perf_read_values__enlarge_counters()
86 values->counters_max * sizeof(*values->countername)); in perf_read_values__enlarge_counters()
87 if (!values->counterrawid || !values->countername) in perf_read_values__enlarge_counters()
90 for (i = 0; i < values->threads; i++) { in perf_read_values__enlarge_counters()
91 values->value[i] = realloc(values->value[i], in perf_read_values__enlarge_counters()
92 values->counters_max * sizeof(**values->value)); in perf_read_values__enlarge_counters()
93 if (!values->value[i]) in perf_read_values__enlarge_counters()
98 static int perf_read_values__findnew_counter(struct perf_read_values *values, in perf_read_values__findnew_counter() argument
103 for (i = 0; i < values->counters; i++) in perf_read_values__findnew_counter()
104 if (values->counterrawid[i] == rawid) in perf_read_values__findnew_counter()
107 if (values->counters == values->counters_max) in perf_read_values__findnew_counter()
108 perf_read_values__enlarge_counters(values); in perf_read_values__findnew_counter()
110 i = values->counters++; in perf_read_values__findnew_counter()
111 values->counterrawid[i] = rawid; in perf_read_values__findnew_counter()
112 values->countername[i] = strdup(name); in perf_read_values__findnew_counter()
117 void perf_read_values_add_value(struct perf_read_values *values, in perf_read_values_add_value() argument
123 tindex = perf_read_values__findnew_thread(values, pid, tid); in perf_read_values_add_value()
124 cindex = perf_read_values__findnew_counter(values, rawid, name); in perf_read_values_add_value()
126 values->value[tindex][cindex] = value; in perf_read_values_add_value()
130 struct perf_read_values *values) in perf_read_values__display_pretty() argument
136 counterwidth = malloc(values->counters * sizeof(*counterwidth)); in perf_read_values__display_pretty()
141 for (j = 0; j < values->counters; j++) in perf_read_values__display_pretty()
142 counterwidth[j] = strlen(values->countername[j]); in perf_read_values__display_pretty()
143 for (i = 0; i < values->threads; i++) { in perf_read_values__display_pretty()
146 width = snprintf(NULL, 0, "%d", values->pid[i]); in perf_read_values__display_pretty()
149 width = snprintf(NULL, 0, "%d", values->tid[i]); in perf_read_values__display_pretty()
152 for (j = 0; j < values->counters; j++) { in perf_read_values__display_pretty()
153 width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); in perf_read_values__display_pretty()
160 for (j = 0; j < values->counters; j++) in perf_read_values__display_pretty()
161 fprintf(fp, " %*s", counterwidth[j], values->countername[j]); in perf_read_values__display_pretty()
164 for (i = 0; i < values->threads; i++) { in perf_read_values__display_pretty()
165 fprintf(fp, " %*d %*d", pidwidth, values->pid[i], in perf_read_values__display_pretty()
166 tidwidth, values->tid[i]); in perf_read_values__display_pretty()
167 for (j = 0; j < values->counters; j++) in perf_read_values__display_pretty()
169 counterwidth[j], values->value[i][j]); in perf_read_values__display_pretty()
176 struct perf_read_values *values) in perf_read_values__display_raw() argument
187 for (i = 0; i < values->threads; i++) { in perf_read_values__display_raw()
188 width = snprintf(NULL, 0, "%d", values->pid[i]); in perf_read_values__display_raw()
191 width = snprintf(NULL, 0, "%d", values->tid[i]); in perf_read_values__display_raw()
195 for (j = 0; j < values->counters; j++) { in perf_read_values__display_raw()
196 width = strlen(values->countername[j]); in perf_read_values__display_raw()
199 width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); in perf_read_values__display_raw()
203 for (i = 0; i < values->threads; i++) { in perf_read_values__display_raw()
204 for (j = 0; j < values->counters; j++) { in perf_read_values__display_raw()
205 width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); in perf_read_values__display_raw()
215 for (i = 0; i < values->threads; i++) in perf_read_values__display_raw()
216 for (j = 0; j < values->counters; j++) in perf_read_values__display_raw()
218 pidwidth, values->pid[i], in perf_read_values__display_raw()
219 tidwidth, values->tid[i], in perf_read_values__display_raw()
220 namewidth, values->countername[j], in perf_read_values__display_raw()
221 rawwidth, values->counterrawid[j], in perf_read_values__display_raw()
222 countwidth, values->value[i][j]); in perf_read_values__display_raw()
225 void perf_read_values_display(FILE *fp, struct perf_read_values *values, int raw) in perf_read_values_display() argument
228 perf_read_values__display_raw(fp, values); in perf_read_values_display()
230 perf_read_values__display_pretty(fp, values); in perf_read_values_display()