Commit | Line | Data |
---|---|---|
102227b9 DBO |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #include <linux/mutex.h> | |
3 | ||
4 | struct rv_interface { | |
5 | struct dentry *root_dir; | |
6 | struct dentry *monitors_dir; | |
7 | }; | |
8 | ||
9 | #include "../trace.h" | |
10 | #include <linux/tracefs.h> | |
11 | #include <linux/rv.h> | |
12 | ||
13 | #define RV_MODE_WRITE TRACE_MODE_WRITE | |
14 | #define RV_MODE_READ TRACE_MODE_READ | |
15 | ||
16 | #define rv_create_dir tracefs_create_dir | |
17 | #define rv_create_file tracefs_create_file | |
18 | #define rv_remove tracefs_remove | |
19 | ||
20 | #define MAX_RV_MONITOR_NAME_SIZE 32 | |
04acadcb | 21 | #define MAX_RV_REACTOR_NAME_SIZE 32 |
102227b9 DBO |
22 | |
23 | extern struct mutex rv_interface_lock; | |
24 | ||
04acadcb DBO |
25 | #ifdef CONFIG_RV_REACTORS |
26 | struct rv_reactor_def { | |
27 | struct list_head list; | |
28 | struct rv_reactor *reactor; | |
29 | /* protected by the monitor interface lock */ | |
30 | int counter; | |
31 | }; | |
32 | #endif | |
33 | ||
102227b9 DBO |
34 | struct rv_monitor_def { |
35 | struct list_head list; | |
36 | struct rv_monitor *monitor; | |
37 | struct dentry *root_d; | |
04acadcb DBO |
38 | #ifdef CONFIG_RV_REACTORS |
39 | struct rv_reactor_def *rdef; | |
40 | bool reacting; | |
41 | #endif | |
102227b9 DBO |
42 | bool task_monitor; |
43 | }; | |
44 | ||
45 | struct dentry *get_monitors_root(void); | |
46 | int rv_disable_monitor(struct rv_monitor_def *mdef); | |
47 | int rv_enable_monitor(struct rv_monitor_def *mdef); | |
04acadcb DBO |
48 | |
49 | #ifdef CONFIG_RV_REACTORS | |
50 | int reactor_populate_monitor(struct rv_monitor_def *mdef); | |
51 | void reactor_cleanup_monitor(struct rv_monitor_def *mdef); | |
52 | int init_rv_reactors(struct dentry *root_dir); | |
53 | #else | |
54 | static inline int reactor_populate_monitor(struct rv_monitor_def *mdef) | |
55 | { | |
56 | return 0; | |
57 | } | |
58 | ||
59 | static inline void reactor_cleanup_monitor(struct rv_monitor_def *mdef) | |
60 | { | |
61 | return; | |
62 | } | |
63 | ||
64 | static inline int init_rv_reactors(struct dentry *root_dir) | |
65 | { | |
66 | return 0; | |
67 | } | |
68 | #endif |