summaryrefslogtreecommitdiffstats
path: root/arch/x86/events/probe.h
blob: 261b9bda24e361cc19ea080d82a274401fdc1e62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ARCH_X86_EVENTS_PROBE_H__
#define __ARCH_X86_EVENTS_PROBE_H__
#include <linux/sysfs.h>

struct perf_msr {
	u64			msr;
	struct attribute_group	*grp;
	bool			(*test)(int idx, void *data);
	bool			no_check;
	u64			mask;
};

unsigned long
perf_msr_probe(struct perf_msr *msr, int cnt, bool no_zero, void *data);

#define __PMU_EVENT_GROUP(_name)			\
static struct attribute *attrs_##_name[] = {		\
	&attr_##_name.attr.attr,			\
	NULL,						\
}

#define PMU_EVENT_GROUP(_grp, _name)			\
__PMU_EVENT_GROUP(_name);				\
static struct attribute_group group_##_name = {		\
	.name  = #_grp,					\
	.attrs = attrs_##_name,				\
}

#endif /* __ARCH_X86_EVENTS_PROBE_H__ */