| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #include <linux/mutex.h> | |
| struct rv_interface { | |
| struct dentry *root_dir; | |
| struct dentry *monitors_dir; | |
| }; | |
| #include "../trace.h" | |
| #include <linux/tracefs.h> | |
| #include <linux/rv.h> | |
| #define RV_MODE_WRITE TRACE_MODE_WRITE | |
| #define RV_MODE_READ TRACE_MODE_READ | |
| #define rv_create_dir tracefs_create_dir | |
| #define rv_create_file tracefs_create_file | |
| #define rv_remove tracefs_remove | |
| DEFINE_FREE(rv_remove, struct dentry *, if (_T) rv_remove(_T)); | |
| #define MAX_RV_MONITOR_NAME_SIZE 32 | |
| #define MAX_RV_REACTOR_NAME_SIZE 32 | |
| extern struct mutex rv_interface_lock; | |
| extern struct list_head rv_monitors_list; | |
| struct dentry *get_monitors_root(void); | |
| int rv_disable_monitor(struct rv_monitor *mon); | |
| int rv_enable_monitor(struct rv_monitor *mon); | |
| bool rv_is_container_monitor(struct rv_monitor *mon); | |
| bool rv_is_nested_monitor(struct rv_monitor *mon); | |
| #ifdef CONFIG_RV_REACTORS | |
| int reactor_populate_monitor(struct rv_monitor *mon, struct dentry *root); | |
| int init_rv_reactors(struct dentry *root_dir); | |
| #else | |
| static inline int reactor_populate_monitor(struct rv_monitor *mon, struct dentry *root) | |
| { | |
| return 0; | |
| } | |
| static inline int init_rv_reactors(struct dentry *root_dir) | |
| { | |
| return 0; | |
| } | |
| #endif |