linux/tools/testing/selftests/powerpc/pmu/event.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright 2013, Michael Ellerman, IBM Corp.
   4 */
   5
   6#ifndef _SELFTESTS_POWERPC_PMU_EVENT_H
   7#define _SELFTESTS_POWERPC_PMU_EVENT_H
   8
   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
  27void event_init(struct event *e, u64 config);
  28void event_init_named(struct event *e, u64 config, char *name);
  29void event_init_opts(struct event *e, u64 config, int type, char *name);
  30int event_open_with_options(struct event *e, pid_t pid, int cpu, int group_fd);
  31int event_open_with_group(struct event *e, int group_fd);
  32int event_open_with_pid(struct event *e, pid_t pid);
  33int event_open_with_cpu(struct event *e, int cpu);
  34int event_open(struct event *e);
  35void event_close(struct event *e);
  36int event_enable(struct event *e);
  37int event_disable(struct event *e);
  38int event_reset(struct event *e);
  39int event_read(struct event *e);
  40void event_report_justified(struct event *e, int name_width, int result_width);
  41void event_report(struct event *e);
  42
  43#endif /* _SELFTESTS_POWERPC_PMU_EVENT_H */
  44