hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
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
/* 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;
};
 
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__ */