1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef __PERF_VALUES_H
2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define __PERF_VALUES_H
3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include "types.h"
5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_read_values {
7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	int threads;
8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	int threads_max;
9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	u32 *pid, *tid;
10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	int counters;
11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	int counters_max;
12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	u64 *counterrawid;
13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	char **countername;
14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	u64 **value;
15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng};
16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid perf_read_values_init(struct perf_read_values *values);
18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid perf_read_values_destroy(struct perf_read_values *values);
19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid perf_read_values_add_value(struct perf_read_values *values,
21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng				u32 pid, u32 tid,
22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng				u64 rawid, const char *name, u64 value);
23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid perf_read_values_display(FILE *fp, struct perf_read_values *values,
25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng			      int raw);
26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif /* __PERF_VALUES_H */
28