Merge tag 'seccomp-v5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees...
[linux-2.6-microblaze.git] / arch / x86 / events / probe.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ARCH_X86_EVENTS_PROBE_H__
3 #define __ARCH_X86_EVENTS_PROBE_H__
4 #include <linux/sysfs.h>
5
6 struct perf_msr {
7         u64                     msr;
8         struct attribute_group  *grp;
9         bool                    (*test)(int idx, void *data);
10         bool                    no_check;
11         u64                     mask;
12 };
13
14 unsigned long
15 perf_msr_probe(struct perf_msr *msr, int cnt, bool no_zero, void *data);
16
17 #define __PMU_EVENT_GROUP(_name)                        \
18 static struct attribute *attrs_##_name[] = {            \
19         &attr_##_name.attr.attr,                        \
20         NULL,                                           \
21 }
22
23 #define PMU_EVENT_GROUP(_grp, _name)                    \
24 __PMU_EVENT_GROUP(_name);                               \
25 static struct attribute_group group_##_name = {         \
26         .name  = #_grp,                                 \
27         .attrs = attrs_##_name,                         \
28 }
29
30 #endif /* __ARCH_X86_EVENTS_PROBE_H__ */