brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · 51aad0b Raw
50 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright 2013, Michael Ellerman, IBM Corp.4 */5 6#ifndef _SELFTESTS_POWERPC_PMU_EVENT_H7#define _SELFTESTS_POWERPC_PMU_EVENT_H8 9#include <unistd.h>10#include <linux/perf_event.h>11 12#include "utils.h"13 14 15struct event {16	struct perf_event_attr attr;17	char *name;18	int fd;19	/* This must match the read_format we use */20	struct {21		u64 value;22		u64 running;23		u64 enabled;24	} result;25	/*26	 * mmap buffer used while recording sample.27	 * Accessed as "struct perf_event_mmap_page"28	 */29	void *mmap_buffer;30};31 32void event_init(struct event *e, u64 config);33void event_init_named(struct event *e, u64 config, char *name);34void event_init_opts(struct event *e, u64 config, int type, char *name);35void event_init_sampling(struct event *e, u64 config);36int event_open_with_options(struct event *e, pid_t pid, int cpu, int group_fd);37int event_open_with_group(struct event *e, int group_fd);38int event_open_with_pid(struct event *e, pid_t pid);39int event_open_with_cpu(struct event *e, int cpu);40int event_open(struct event *e);41void event_close(struct event *e);42int event_enable(struct event *e);43int event_disable(struct event *e);44int event_reset(struct event *e);45int event_read(struct event *e);46void event_report_justified(struct event *e, int name_width, int result_width);47void event_report(struct event *e);48 49#endif /* _SELFTESTS_POWERPC_PMU_EVENT_H */50