#ifndef _PERFMON_H_
#define _PERFMON_H_
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/sbitmap.h>
#include <linux/dmaengine.h>
#include <linux/percpu-rwsem.h>
#include <linux/wait.h>
#include <linux/cdev.h>
#include <linux/uuid.h>
#include <linux/idxd.h>
#include <linux/perf_event.h>
#include "registers.h"
static inline struct idxd_pmu *event_to_pmu(struct perf_event *event)
{ … }
static inline struct idxd_device *event_to_idxd(struct perf_event *event)
{ … }
static inline struct idxd_device *pmu_to_idxd(struct pmu *pmu)
{ … }
enum dsa_perf_events { … };
enum filter_enc { … };
#define CONFIG_RESET …
#define CNTR_RESET …
#define CNTR_ENABLE …
#define INTR_OVFL …
#define COUNTER_FREEZE …
#define COUNTER_UNFREEZE …
#define OVERFLOW_SIZE …
#define CNTRCFG_ENABLE …
#define CNTRCFG_IRQ_OVERFLOW …
#define CNTRCFG_CATEGORY_SHIFT …
#define CNTRCFG_EVENT_SHIFT …
#define PERFMON_TABLE_OFFSET(_idxd) …
#define PERFMON_REG_OFFSET(idxd, offset) …
#define PERFCAP_REG(idxd) …
#define PERFRST_REG(idxd) …
#define OVFSTATUS_REG(idxd) …
#define PERFFRZ_REG(idxd) …
#define FLTCFG_REG(idxd, cntr, flt) …
#define CNTRCFG_REG(idxd, cntr) …
#define CNTRDATA_REG(idxd, cntr) …
#define CNTRCAP_REG(idxd, cntr) …
#define EVNTCAP_REG(idxd, category) …
#define DEFINE_PERFMON_FORMAT_ATTR(_name, _format) …
#endif