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 zfree(&values->value[i]); in perf_read_values_destroy()
35 zfree(&values->value); in perf_read_values_destroy()
36 zfree(&values->pid); in perf_read_values_destroy()
37 zfree(&values->tid); in perf_read_values_destroy()
38 zfree(&values->counterrawid); in perf_read_values_destroy()
39 for (i = 0; i < values->counters; i++) in perf_read_values_destroy()
40 zfree(&values->countername[i]); in perf_read_values_destroy()
41 zfree(&values->countername); in perf_read_values_destroy()
44 static void perf_read_values__enlarge_threads(struct perf_read_values *values) in perf_read_values__enlarge_threads() argument
46 values->threads_max *= 2; in perf_read_values__enlarge_threads()
47 values->pid = realloc(values->pid, in perf_read_values__enlarge_threads()
48 values->threads_max * sizeof(*values->pid)); in perf_read_values__enlarge_threads()
49 values->tid = realloc(values->tid, in perf_read_values__enlarge_threads()
50 values->threads_max * sizeof(*values->tid)); in perf_read_values__enlarge_threads()
51 values->value = realloc(values->value, in perf_read_values__enlarge_threads()
52 values->threads_max * sizeof(*values->value)); in perf_read_values__enlarge_threads()
53 if (!values->pid || !values->tid || !values->value) in perf_read_values__enlarge_threads()
57 static int perf_read_values__findnew_thread(struct perf_read_values *values, in perf_read_values__findnew_thread() argument
62 for (i = 0; i < values->threads; i++) in perf_read_values__findnew_thread()
63 if (values->pid[i] == pid && values->tid[i] == tid) in perf_read_values__findnew_thread()
66 if (values->threads == values->threads_max) in perf_read_values__findnew_thread()
67 perf_read_values__enlarge_threads(values); in perf_read_values__findnew_thread()
69 i = values->threads++; in perf_read_values__findnew_thread()
70 values->pid[i] = pid; in perf_read_values__findnew_thread()
71 values->tid[i] = tid; in perf_read_values__findnew_thread()
72 values->value[i] = malloc(values->counters_max * sizeof(**values->value)); in perf_read_values__findnew_thread()
73 if (!values->value[i]) in perf_read_values__findnew_thread()
79 static void perf_read_values__enlarge_counters(struct perf_read_values *values) in perf_read_values__enlarge_counters() argument
83 values->counters_max *= 2; in perf_read_values__enlarge_counters()
84 values->counterrawid = realloc(values->counterrawid, in perf_read_values__enlarge_counters()
85 values->counters_max * sizeof(*values->counterrawid)); in perf_read_values__enlarge_counters()
86 values->countername = realloc(values->countername, in perf_read_values__enlarge_counters()
87 values->counters_max * sizeof(*values->countername)); in perf_read_values__enlarge_counters()
88 if (!values->counterrawid || !values->countername) in perf_read_values__enlarge_counters()
91 for (i = 0; i < values->threads; i++) { in perf_read_values__enlarge_counters()
92 values->value[i] = realloc(values->value[i], in perf_read_values__enlarge_counters()
93 values->counters_max * sizeof(**values->value)); in perf_read_values__enlarge_counters()
94 if (!values->value[i]) in perf_read_values__enlarge_counters()
99 static int perf_read_values__findnew_counter(struct perf_read_values *values, in perf_read_values__findnew_counter() argument
104 for (i = 0; i < values->counters; i++) in perf_read_values__findnew_counter()
105 if (values->counterrawid[i] == rawid) in perf_read_values__findnew_counter()
108 if (values->counters == values->counters_max) in perf_read_values__findnew_counter()
109 perf_read_values__enlarge_counters(values); in perf_read_values__findnew_counter()
111 i = values->counters++; in perf_read_values__findnew_counter()
112 values->counterrawid[i] = rawid; in perf_read_values__findnew_counter()
113 values->countername[i] = strdup(name); in perf_read_values__findnew_counter()
118 void perf_read_values_add_value(struct perf_read_values *values, in perf_read_values_add_value() argument
124 tindex = perf_read_values__findnew_thread(values, pid, tid); in perf_read_values_add_value()
125 cindex = perf_read_values__findnew_counter(values, rawid, name); in perf_read_values_add_value()
127 values->value[tindex][cindex] = value; in perf_read_values_add_value()
131 struct perf_read_values *values) in perf_read_values__display_pretty() argument
137 counterwidth = malloc(values->counters * sizeof(*counterwidth)); in perf_read_values__display_pretty()
142 for (j = 0; j < values->counters; j++) in perf_read_values__display_pretty()
143 counterwidth[j] = strlen(values->countername[j]); in perf_read_values__display_pretty()
144 for (i = 0; i < values->threads; i++) { in perf_read_values__display_pretty()
147 width = snprintf(NULL, 0, "%d", values->pid[i]); in perf_read_values__display_pretty()
150 width = snprintf(NULL, 0, "%d", values->tid[i]); in perf_read_values__display_pretty()
153 for (j = 0; j < values->counters; j++) { in perf_read_values__display_pretty()
154 width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); in perf_read_values__display_pretty()
161 for (j = 0; j < values->counters; j++) in perf_read_values__display_pretty()
162 fprintf(fp, " %*s", counterwidth[j], values->countername[j]); in perf_read_values__display_pretty()
165 for (i = 0; i < values->threads; i++) { in perf_read_values__display_pretty()
166 fprintf(fp, " %*d %*d", pidwidth, values->pid[i], in perf_read_values__display_pretty()
167 tidwidth, values->tid[i]); in perf_read_values__display_pretty()
168 for (j = 0; j < values->counters; j++) in perf_read_values__display_pretty()
170 counterwidth[j], values->value[i][j]); in perf_read_values__display_pretty()
177 struct perf_read_values *values) in perf_read_values__display_raw() argument
188 for (i = 0; i < values->threads; i++) { in perf_read_values__display_raw()
189 width = snprintf(NULL, 0, "%d", values->pid[i]); in perf_read_values__display_raw()
192 width = snprintf(NULL, 0, "%d", values->tid[i]); in perf_read_values__display_raw()
196 for (j = 0; j < values->counters; j++) { in perf_read_values__display_raw()
197 width = strlen(values->countername[j]); in perf_read_values__display_raw()
200 width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); in perf_read_values__display_raw()
204 for (i = 0; i < values->threads; i++) { in perf_read_values__display_raw()
205 for (j = 0; j < values->counters; j++) { in perf_read_values__display_raw()
206 width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); in perf_read_values__display_raw()
216 for (i = 0; i < values->threads; i++) in perf_read_values__display_raw()
217 for (j = 0; j < values->counters; j++) in perf_read_values__display_raw()
219 pidwidth, values->pid[i], in perf_read_values__display_raw()
220 tidwidth, values->tid[i], in perf_read_values__display_raw()
221 namewidth, values->countername[j], in perf_read_values__display_raw()
222 rawwidth, values->counterrawid[j], in perf_read_values__display_raw()
223 countwidth, values->value[i][j]); in perf_read_values__display_raw()
226 void perf_read_values_display(FILE *fp, struct perf_read_values *values, int raw) in perf_read_values_display() argument
229 perf_read_values__display_raw(fp, values); in perf_read_values_display()
231 perf_read_values__display_pretty(fp, values); in perf_read_values_display()