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